des加密 lua_openresty des3加密脱坑基地

本文分享了两种使用OpenResty进行DES3加密的方法,分别是基于lua-resty-nettle和lua-lockbox的实现。提供了详细的代码示例,推荐使用lua-resty-nettle,因为其性能较好。lua-lockbox的使用需要对源码做小幅度修改。
摘要由CSDN通过智能技术生成

分享2种openresty des3加密的代码,节省大家脱坑的时间:

1.based on lua-resty-nettle

local pkcs7 = require "resty.nettle.padding.pkcs7"

local base64 = require "resty.nettle.base64"

local des = require "resty.nettle.des"

local cipher= des.new("密钥")

local encrypted = cipher:encrypt(pkcs7.pad('要加密的文本', 8))

ngx.print(base64.encode(encrypted))

2.based on lua-lockbox

local Array = require("lockbox.util.array")

local Stream = require("lockbox.util.stream")

local ECBMode = require("lockbox.cipher.mode.ecb")

local PKCS7Padding = require("lockbox.padding.pkcs7")

local DESCipher = require("lockbox.cipher.des3")

local Base64 = require("lockbox.util.base64")

local cipher = ECBMode.Cipher().setKey(Array.fromString("密钥")).setBlockCipher(DESCipher).setPadding(PKCS7Padding)

local res = cipher.init().update(Stream.fromArray(Array.fromString(""))).update(Stream.fromArray(Array.fromString('要加密的文本'))).finish().asBytes()

local out = Base64.fromArray(res)

ngx.print(out)

推荐第1种,性能还可以,lua-lockbox需要修改lockbox.padding.pkcs7中的一行代码local paddingCount = blockSize - byteCount % blockSize;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值