对例子进行openssl进行签名验证进行问题修改

This commit is contained in:
wanglei 2025-11-11 19:51:35 +08:00
parent e422654320
commit 242391f577

View File

@ -206,9 +206,9 @@ end
-- 执行示例
example()
do
return
end
--do
-- return
--end
-- 公钥加密(用于生成测试数据)
local function rsa_encrypt(pub_key, plaintext)
@ -302,45 +302,36 @@ local function test_rsa_crypto()
-------------------------------
-- 要签名的数据
local md5val = original_text --ngx.md5(original_text) -- 使用MD5作为摘要算法你也可以使用其他如sha256等
--[[
-- 创建签名
-- 使用SHA256算法
local digest1 = digest.new("sha256")
-- 更新签名上下文,提供数据以供签名
digest1:update(md5val)
-- 完成签名
local signature, err = digest1:final(priv_key)
if not signature then
ngx.log(ngx.ERR, "Failed to generate signature: ", err)
return
end
ngx.say("签名文件: ", signature)
local decode_date = ngx.encode_base64(signature)
ngx.say("签名加密后(Base64)", decode_date)
--]]
---- 生成签名------------------
-- 使用SHA256算法
local digestG = digest.new("sha256")
local md = digest.new("sha256")
-- 更新签名上下文,提供数据以供签名
digestG:update(md5val)
md:update(md5val)
-- 完成签名
local signature, err = digestG:final(priv_key)
local privK, err = pkey.new(priv_key)
if not privK then
return nil, "参数错误(私钥或密文为空)"
end
local signature, err = privK:sign(md)
if not signature then
ngx.log(ngx.ERR, "Failed to generate signature: ", err)
return
end
ngx.say("签名数据: ", signature)
ngx.say("签名数据1: ", signature)
local encode_date = ngx.encode_base64(signature)
ngx.say("签名数据加密后(Base64)", encode_date)
---- 验证签名------------------
local pubK, err = pkey.new(pub_key)
if not pubK then
return nil, "参数错误(私钥或密文为空)"
end
local decode_date = ngx.decode_base64(encode_date)
ngx.say("签名数据解密后(Base64)", decode_date)
local is_valid = pubK:verify(encode_date, md5val) -- 使用与签名相同的摘要算法进行验证
local digestP = digest.new("sha256")
-- 更新签名上下文,提供数据以供签名
digestP:update(md5val)
local signature1 = ngx.decode_base64(encode_date)
ngx.say("签名数据2: ", signature1)
local is_valid = pubK:verify(signature1, digestP) -- 使用与签名相同的摘要算法进行验证
if is_valid then
ngx.say("Signature is valid.")
else