openssl x509 -in 123.cer -pubkey -noout > 123.pem----------------------------------------从证书中提取公钥
【说明:从证书123.cer中,提取123.pem(公钥)】
C:\Users\Administrator>openssl dgst -sha256 -binary -out data.sha256 data.txt -------------------生成hash256
【说明:使用data.txt文件 做hash256计算,得到data.sha256 hash结果】
C:\Users\Administrator>openssl pkeyutl -sign -inkey private.pem -in data.sha256 -out data.sig----生成签名值
【说明:使用data.sha256做为被签、使用私钥private.pem进行签名,得到data.sig 签名值】
C:\Users\Administrator>openssl dgst -sha256 -verify pub.pem -signature data.sig data.txt ----------验签
Verified OK-----验签通过
【说明:pub.pem(公钥),data.txt(源文件),data.sig(签名值)】
签名值data.sig DER解码得R和S
C:\Users\Administrator>openssl asn1parse -inform DER -in data.sig----------------------------------将签名值DER解码成R和S形式
0:d=0 hl=2 l= 68 cons: SEQUENCE
2:d=1 hl=2 l= 32 prim: INTEGER :596961D539F1F72F449E94F03C66543003AFB88F1AE78A7F068A6E92652C013F
36:d=1 hl=2 l= 32 prim: INTEGER :07661A2B846D55F92864BECE32CD2688DC8C5A652BD46305525779B59F70377