当前位置: 首页 > news >正文

openresty开发lua-resty-openssl之对称加密解密 - liuxm

openresty开发lua-resty-openssl之对称加密解密

local cipher = require "resty.openssl.cipher"
local rand = require "resty.openssl.rand"
local pkey = require "resty.openssl.pkey"-- cbc需要32位密钥随机生成32位秘钥
local random_bytes = rand.bytes(32)-- 加密过程
local function aes_encrypt(data, key)-- 创建 AES-256-CBC 加密对象local c, err = cipher.new("aes-256-cbc")if not c then return nil, err end-- 生成随机 IV(AES-CBC 模式需要 16 字节 IV)local iv = rand.bytes(16)if not iv then return nil, "生成 IV 失败" end-- 初始化加密上下文local ok, err = c:init(key, iv, {is_encrypt=true}) -- true 表示加密模式if not ok then return nil, err end-- 加密数据(需处理填充)local encrypted, err = c:final(data)if not encrypted then return nil, err end-- 返回 IV + 加密后的数据(解密时需要 IV)return iv .. encrypted
end-- 解密过程
local function aes_decrypt(encrypted_data, key)-- 提取 IV(前 16 字节)local iv = encrypted_data:sub(1, 16)local data = encrypted_data:sub(17)-- 创建解密对象local c, err = cipher.new("aes-256-cbc")if not c then return nil, err end-- 初始化解密上下文local ok, err = c:init(key, iv, {is_encrypt=false}) -- false 表示解密模式if not ok then return nil, err end-- 解密数据local decrypted, err = c:final(data)if not decrypted then return nil, err endreturn decrypted
end-- 加密数据
local encode_bin = aes_encrypt("hello",random_bytes)-- 输出解密结果
ngx.say(aes_decrypt(encode_bin,random_bytes))

 

http://www.hskmm.com/?act=detail&tid=32336

相关文章:

  • 哈希乱搞:CF1418G Three Occurrences
  • 2025 年废旧轮胎裂解加热生产厂家最新推荐榜单:优质企业专利技术、产能规模与口碑实力全景解析锂化工焚烧炉/氟化热风系统/煤化工热风炉厂家推荐
  • 悲伤 自卑 乖戾 独自哭泣 陪伴空虚 kill my memory 让我将痛苦全忘记
  • 日志 | 2025.10
  • 工程师的 “指尖实验室”!正点原子 LT1 电桥镊子深度测评:同价位竞品谁能打?
  • 【ACM出版|EI检索稳定】2025年AI驱动下:业务转型和数据科学创新国际学术会议(ICBTDS 2025)
  • 破解跨域监控难题:国标GB28181算法算力平台EasyGBS视频调阅技术在跨域安防监控中的核心应用
  • 2025 年电缆桥架源头厂家最新推荐排行榜:聚焦优质供应商核心竞争力,助力工程采购精准选型
  • 2025 年厂房出售公司服务推荐排行榜:珠三角/广州/深圳/东莞/佛山/珠海等城市优质厂房出售公司全面测评解析
  • 构建智能视觉中枢:国标GB28181算法算力平台EasyGBS的全域感知与播放方案
  • 别再乱排查了!Kafka 消息积压、重复、丢失,根源基本都是 Rebalance!
  • 2025年交通杯-爆破题wp
  • 挖象浏览器下载安装教程|支持淘宝、拼多多、抖音多平台账号分区管理
  • 2025 年国内活性炭回收交易公司最新推荐排行榜:实力厂商深度解析,助力企业精准选合作方回收果壳活性炭/回收煤质柱状活性炭/库存各种活性炭公司推荐
  • 2025-10-15 CSP-J 模拟赛 赛后总结【ZROI】
  • 辐射检测仪哪家好?CT剂量模体哪家好?
  • 2025 木饰面源头厂家最新推荐榜单:21 年深耕企业领衔,背景墙 / 全屋 / 碳晶板 / 岩板全场景适配品牌解析
  • 读书笔记:Oracle LOB类型:大数据存储的终极指南
  • 2025 年铝塑板源头厂家最新推荐榜:聚焦气候适配与品质服务,西南及全国优质供应商精选,含门头 / 墙面 / 外墙等场景专款
  • 2025年散装物料输送设备厂家最新品牌推荐榜:刀闸阀/换向阀/旋转阀厂家权威甄选,核心竞争力深度解析!
  • 【2025-10-14】玩玩植物
  • 【2025-10-13】平凡父母
  • Oracle故障处理:轻松搞定ORA-01190报错
  • 【2025-10-15】农村自建房
  • EAS_接口新增单据提示没有组织单据新增权限
  • 集成驱动安全:Synack如何通过技术整合提升安全效能
  • 全自动红外测油仪厂家推荐/国产红外测油仪品牌推荐/靠谱供应商采购推荐
  • 洛谷P4516 [JSOI2018] 潜入行动
  • Mysql1064,最常见的语法错误
  • 一对一直播源码搭建:后来者的源码选择与专业研发的关键考量