下面给你一个从生成密钥到用 OpenSSL 在 Linux 下签名(及验证)的完整示例,适用于文件签名 / 代码签名 / 数据完整性校验等常见场景。
openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key
假设要签名的文件是 data.txt
openssl pkeyutl -sign \
-inkey private.key \
-in data.txt \
-out data.sig
生成:
data.sig:二进制签名文件openssl dgst -sha256 -sign private.key -out data.sig data.txt
✅ 这是最常用方式
openssl dgst -sha256 -verify public.key -signature data.sig data.txt
成功输出:
Verified OK
失败输出:
Verification Failure
openssl base64 -in data.sig
或转成 base64 存储:
openssl dgst -sha256 -sign private.key data.txt | base64 > data.sig.b64
openssl ecparam -genkey -name prime256v1 -noout -out ecc.key
openssl ec -in ecc.key -pubout -out ecc.pub
openssl dgst -sha256 -sign ecc.key -out data.sig data.txt
openssl dgst -sha256 -verify ecc.pub -signature data.sig data.txt
pkeyutl -encrypt如果你有具体用途(如:
可以告诉我,我给你更针对性的命令。