local pkey = require("openssl.pkey")
local digest = require("openssl.digest")
local mime = require("mime")
-- 读取pem格式公钥证书文件
local pk_cert_data = assert(io.open("/root/public.pem", "rb")):read("*a")
local pkey =pkey.new()
pkey:setPubinsiglicKey(pk_cert_data)
-- 原始数据
local data = "Hello, World!"
-- 创建SHA256摘要对象
local digest_data = digest.new("sha256")
print(digest_data)
-- 更新摘要
digest_data:update(data)
--使用java项目中签名方法生成的签名
local signatures ="fwOupXYu/6bl8RqMJWztrU6trsKkGXSh2nyQyHHmiuqlyCXWm5sE3zCzqoYVB5ppYIwzYGWYmhEH9jRzmB6R7oZXDLKnom/BaRnUMmrHjmgaI5AL9jAAyLKckNlOl1ptS35a7A3PyFDTBkOxq6gEZjJhMHxJVe4W98JJMpZqzZ5nM5nOVDKRsUrziSO0M7u/nDt03IoxB8wN34ljkjhXbT8v6my85QYTH3e0Pj9dcBiUV9Sv04GOCEr+eE9HznWirb169+MsulGERi2ILZAf+kTWJ/I5TYrGvbviowhtvRU4j1zJvnVRE1rjOEZpvxmBUAoSXpWOSUcqlVKAwsLbaQ=="
local signature =mime.unb64(signatures)
-- 打印签名
print("Signature:", signature)
-- 验证签名
local verify_result = pkey:verify(signature, digest_data)
-- 判断验签结果
if verify_result == true then
print("Signature is valid.")
elseif verify_result == false then
print("Signature is invalid.")
else
print("Verification failed.")
end
输出
userdata: 0x21973e8
Signature: ��v.�����%l��N��¤t��|��q���%֛��0����i`�3`e���4s���W
���o�i�2jǎh#�
�0
Signature is valid.