openresty用AES/ECB/NoPadding 128位解密

由于各个语言在默认填充方式的不同,导致跨编程语言加解密失败。
lua 解密java 用AES/ECB/NoPadding 128位加密结果示例:
ase 使用了resty.aes,底层调用了C语言的spenssl

local str = require "resty.string"

--ECB 方式无需iv,传递一个16字节的iv以便用原始key进行EVP_DecryptInit_ex初始化
local
price_decode = aes:new(key,nil,aes.cipher(128,"ecb"),{iv=dspkey})
local
base_decode_bytes = ngx.decode_base64(ad_price)
ngx
.log(ngx.DEBUG,"base_decode_price_byte:" .. str.to_hex(base_decode_price))
--补充一个空块的加密结果,以适应decrypt函数的调用
base_decode_bytes = base_decode_bytes .. pad_bytes
local
price = price_decode:decrypt(base_decode_bytes)


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值