温馨提示×

怎么用linux openssl签名

小樊
36
2026-09-19 20:57:54
栏目: 云计算

下面给你一个最常用、最实用的 Linux + OpenSSL 签名示例,从生成密钥到验证签名,一步一步来。


一、生成密钥(RSA 为例)

1. 生成私钥

openssl genrsa -out private.key 2048

2. 从私钥导出公钥

openssl rsa -in private.key -pubout -out public.key

二、对文件进行签名

假设你要签名的文件是 data.txt

1. 生成签名(二进制签名)

openssl dgst -sha256 -sign private.key -out data.sig data.txt

2. (可选)生成 Base64 签名

openssl dgst -sha256 -sign private.key data.txt | base64 > data.sig.b64

三、验证签名

1. 使用公钥验证(二进制签名)

openssl dgst -sha256 -verify public.key -signature data.sig data.txt

✅ 成功输出:

Verified OK

❌ 失败输出:

Verification Failure

2. 验证 Base64 签名

base64 -d data.sig.b64 > data.sig
openssl dgst -sha256 -verify public.key -signature data.sig data.txt

四、常见变体

ECDSA 签名(更安全、更短)

openssl ecparam -genkey -name prime256v1 -out ec.key
openssl dgst -sha256 -sign ec.key -out data.sig data.txt
openssl dgst -sha256 -verify <(openssl ec -in ec.key -pubout) -signature data.sig data.txt

五、常见用途

  • 软件发布签名
  • 接口请求签名(API)
  • 配置文件防篡改
  • License 校验

六、注意事项

  • 私钥一定不能泄露
  • 签名 ≠ 加密(别人能看到原文)
  • 验证只需公钥
  • 推荐用 sha256 或更高

如果你有具体场景(比如 API 签名、JWT、SM2、给 ELF 文件签名、Python 调用 OpenSSL),告诉我,我可以给你更针对性的例子。

0