openssl 命令行生成密钥对,生成hash,PSS填充签名,校验

生成密钥对

c 复制代码
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:4096
openssl rsa -pubout -in private_key.pem -out public_key.pem

将源文件data.txt生成hash值(sha-256)

c 复制代码
openssl dgst -sha256 -binary data.txt > data.sha256

对hash值进行签名

c 复制代码
openssl pkeyutl -sign -in data.sha256 -inkey private_key.pem -out signature.bin -pkeyopt digest:sha256 -pkeyopt rsa_padding_mode:pss -pkeyopt rsa_pss_saltlen:-1

验证签名

c 复制代码
openssl pkeyutl -verify -in data.sha256 -sigfile signature.bin -pkeyopt rsa_padding_mode:pss  -pubin -inkey public_key.pem -pkeyopt rsa_pss_saltlen:-1 -pkeyopt digest:sha256

签名命令参数详解

pkeyutl: 这是OpenSSL的一个命令行工具,用于执行与公钥和私钥相关的多种操作,包括签名、验证签名、加密、解密等。

-sign: 指定此命令的操作模式为签名。这意味着你打算使用私钥对数据进行签名。

-in data.txt: 指定要进行签名的数据文件为data.txt。这个文件的内容将被读取并用于生成签名。

-inkey private_key.pem: 指定用于签名的私钥文件是private_key.pem。这个文件应该包含你的RSA私钥。

-out sig1.bin: 设置输出签名文件名为sig1.bin。签名结果会被保存到这个文件中。

-pkeyopt digest:sha256: 这个选项指定了在签名过程中使用的摘要算法为SHA-256。这意味着在对数据进行签名前,数据会先通过SHA-256算法计算摘要值。

-pkeyopt rsa_padding_mode:pss: 设置填充模式为PSS(Probabilistic Signature Scheme)。PSS是一种安全的填充方案,常用于RSA签名,提供随机化以增强安全性。

-pkeyopt rsa_pss_saltlen : -1: 指定PSS填充中的盐长度为自动(默认或最大可能值)。值-1通常意味着让OpenSSL根据密钥大小自动选择最佳的盐长度,这有助于提高安全性。

相关推荐
小静AI工程实验室10 小时前
MD5 算法详解:哈希原理、标准向量、输入编码与安全边界
算法·安全·哈希算法·md5
重生之小比特11 小时前
【C++进阶】unordered_set 和unordered_map 深度解析
c++·哈希算法
黄金龙PLUS1 天前
5个1024比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密
another heaven7 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
黄金龙PLUS8 天前
5个800比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密
数据知道13 天前
LDAP 与 AD 安全深度剖析——注入、弱绑定、权限配置错误
网络安全·密码学·哈希算法
那年窗外下的雪.16 天前
AIDC 学习日志|第 22 天|All-Active/Single-Active 故障演练设计
服务器·网络·学习·算法·哈希算法
David猪大卫16 天前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
shehuiyuelaiyuehao16 天前
算法44,模拟算法,数青蛙
算法·哈希算法·散列表
数据知道16 天前
密钥管理(KMS)——轮换、分级、HSM 硬件安全模块
网络安全·密码学·哈希算法