diff --git a/src/test/test.lua b/src/test/test.lua index f05899e..7f508ab 100644 --- a/src/test/test.lua +++ b/src/test/test.lua @@ -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