1、需求
openresty实现参数加密并转发,加密方式AES,128,CBC模式。需要和java的解密对接。
2、加密包
采用https://github.com/somesocks/lua-lockbox
由于java的补位采用PKCS5Padding,而lua的补位采用PKCS7Padding。因此此时lua的加密数据无法采用java解密。参考文章https://www.jianshu.com/p/c49b9768a6e9
将lua-lockbox/lockbox/padding/pkcs7.lua中的local paddingCount =
blockSize - ((byteCount -1) % blockSize) + 1;改为local paddingCount = blockSize - (byteCount % blockSize);
将修改好的lockbox文件夹拷贝到/usr/local/openresty/lualib下
3、lua加密
-- 拼接函数
function mergeTables(...)
local tabs = {...}
if not tabs then
return {}
end
local origin = tabs[1]
for i = 2,#tabs do
if origin then
if tabs[i] then
for k,v in pairs(tabs[i]) do
table.insert(origin,v)
end
end
else
origin = tabs[i]
end
end
return origin
lua加密
最新推荐文章于 2020-11-24 20:32:50 发布
本文介绍了如何使用OpenResty的Lua实现AES-128-CBC加密,以满足与Java解密的对接需求。通过修改lua-lockbox库中的PKCS7Padding实现与Java PKCS5Padding的兼容,并提供了加密函数示例。
摘要由CSDN通过智能技术生成