跳到主要内容

zm.DecodeAES AES解密

🎯功能

对数据进行标准AES解密, 支持AES128,AES196和AES256, 能对通过zm.EncodeAES AES加密加密的结果进行解密还原。

📜语法

结果 = zm.DecodeAES(密文, 密钥[, 高级属性])

📥参数

参数数据类型解释
明文字符串待解密的密文内容。
密钥字符串用于解密的密钥。
高级属性可选参数,用于设置加解密模式等选项,格式为 {"属性名":"属性值",...} ,详见下方表。
属性名可选值列表默认值作用
modeecb,cbc,ctr,ofb,cfb,ige,pcbcecb密文加密模式
paddingzero,pkcs7,isoiec7816,ansix923zero填充方式
block128,192,256128数据块
iv任意字符串0iv偏移量,ecb模式不用填写,其他模式必填且要有16个字节长度。
cipherout0,2,16,6416密文类型,0为原二进制字符串,2为字节数组, 16为十六进制字符串, 64为原二进制字符串Base64编码

📤返回

字符串 ,返回解密后的结果,失败为null

💡示例

Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次

Dim text = "紫猫", pwd = "m.zimaoxy.com"
Dim s, v
s = zm.EncodeAES(text, pwd)
TracePrint "对明文", text, "使用密钥", pwd, "进行AES-ECB加密结果", s
v = zm.DecodeAES(s, pwd)
TracePrint "对密文", s, "使用密钥", pwd, "进行AES-ECB解密结果", v

s = zm.EncodeAES(text, pwd, {"cipherout":64})
TracePrint "对明文", text, "使用密钥", pwd, "进行AES加密输出Base64结果", s
v = zm.DecodeAES(s, pwd, {"cipherout":64})
TracePrint "对十六进制密文", s, "使用密钥", pwd, "进行AES解密输出Base64结果", v

s = zm.EncodeAES(text, pwd, {"mode":"cbc","iv":"1234567890abcdef"})
TracePrint "对明文", text, "使用密钥", pwd, "进行AES-CBC加密结果", s
v = zm.DecodeAES(s, pwd, {"mode":"cbc","iv":"1234567890abcdef"})
TracePrint "对十六进制密文", s, "使用密钥", pwd, "进行AES-CBC解密结果", v

📘备注

  • V1.1723b: 初次加入
  • V2.1828:
  • V3.1831:
    • 修改为标准AES加解密, 注意不兼容上版本的加解密结果!
    • 对密钥长度加入限制
    • 修复解密结果包含\0字符的问题