Appearance
加解密方法
函数列表
1. AES 加密/解密 (cryptLib.aes_crypt)
说明: 对数据执行 AES 加密或解密操作,支持多种模式(ECB/CBC/CFB/OFB/CTR)和可选填充
函数: cryptLib.aes_crypt(data, key, operation, mode, [iv], [padding])
参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | 字符串 | 要加密或解密的原始数据 |
| key | 字符串 | 加密密钥(16/24/32 字节,对应 AES-128/192/256) |
| operation | 字符串 | 操作类型,"encrypt" 或 "decrypt" |
| mode | 字符串 | 加密模式:"ecb", "cbc", "cfb", "ofb", "ctr" |
| iv | 字符串 | 初始化向量(16 字节),ECB 模式不需要 |
| padding | 布尔值 | 是否启用 PKCS#7 填充,默认为 true |
返回值:
| 返回值类型 | 说明 |
|---|---|
| 字符串 | 加密或解密后的数据 |
使用说明: ECB 模式不需要 iv 参数;密钥长度必须为 16/24/32 字节;当模式不是 ECB 时,iv 长度必须为 16 字节
示例:
lua
local data = "Hello LazyScript!"
local key = "1234567890123456"
local iv = "0000000000000000"
local encrypted = cryptLib.aes_crypt(data, key, "encrypt", "cbc", iv, true)
print("加密结果:", encrypted)
local decrypted = cryptLib.aes_crypt(encrypted, key, "decrypt", "cbc", iv, true)
print("解密结果:", decrypted)2. 生成 AES 密钥 (cryptLib.aes_keygen)
说明: 随机生成指定长度的 AES 密钥(16/24/32)
函数: cryptLib.aes_keygen(key_length)
参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| key_length | 整数 | 密钥长度(16/24/32) |
返回值:
| 返回值类型 | 说明 |
|---|---|
| 字符串 | 随机生成的密钥 |
示例:
lua
local key = cryptLib.aes_keygen(32)
print("生成的密钥:", key)3. 生成随机 IV (cryptLib.aes_ivgen)
说明: 生成一个 16 字节的随机初始化向量 (IV),用于 CBC/CFB/OFB 等模式
函数: cryptLib.aes_ivgen()
参数: 无
返回值:
| 返回值类型 | 说明 |
|---|---|
| 字符串 | 16 字节随机 IV |
示例:
lua
local iv = cryptLib.aes_ivgen()
print("生成的IV:", iv)4. 生成 RSA 密钥对 (cryptLib.rsa_generate_key)
说明: 生成 RSA 公钥/私钥对,返回 PEM 格式的公钥和私钥
函数: cryptLib.rsa_generate_key([key_bits])
参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| key_bits | 整数 | 密钥长度,默认 2048(常见 1024/2048/4096) |
返回值:
| 返回值类型 | 说明 |
|---|---|
| 字符串 | PEM 格式的公钥 |
| 字符串 | PEM 格式的私钥 |
使用说明: 密钥长度越长越安全,但性能越低;一般建议至少使用 2048 位
示例:
lua
local pubkey, privkey = cryptLib.rsa_generate_key(2048)
print("公钥:\n", pubkey)
print("私钥:\n", privkey)5. RSA 加密(或签名) (cryptLib.rsa_encrypt)
说明: 使用 RSA 公钥(或私钥)对数据进行加密;当使用私钥加密时可用于签名场景
函数: cryptLib.rsa_encrypt(data, key, is_public_key)
参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | 字符串 | 要加密的数据 |
| key | 字符串 | 公钥或私钥(PEM 格式) |
| is_public_key | 布尔值 | true 表示使用公钥加密,false 表示使用私钥加密 |
返回值:
| 返回值类型 | 说明 |
|---|---|
| 字符串 | 加密后的数据(原始字节) |
使用说明: RSA 加密的数据长度受限(通常不能超过密钥长度减填充开销,例如 PKCS#1 填充为 key_len-11),大数据推荐使用混合加密(对称加密数据,RSA 加密对称密钥)
示例:
lua
local original_data = "需要加密的敏感数据"
local encrypted_data = cryptLib.rsa_encrypt(original_data, pubkey, true)
print("加密后长度:", #encrypted_data)
local decrypted = cryptLib.rsa_decrypt(encrypted_data, privkey, false)
print("解密结果:", decrypted)6. RSA 解密(或验证签名) (cryptLib.rsa_decrypt)
说明: 使用 RSA 私钥(或公钥)对数据进行解密;当使用公钥解密私钥"加密"的数据时可用于验证签名
函数: cryptLib.rsa_decrypt(data, key, is_public_key)
参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | 字符串 | 要解密的数据 |
| key | 字符串 | 私钥或公钥(PEM 格式) |
| is_public_key | 布尔值 | true 表示使用公钥解密,false 表示使用私钥解密 |
返回值:
| 返回值类型 | 说明 |
|---|---|
| 字符串 | 解密后的原始数据 |
示例:
lua
local decrypted = cryptLib.rsa_decrypt(encrypted_data, privkey, false)
print("解密结果:", decrypted)