openssl 命令列實現數字簽名

2021-07-25 04:48:23 字數 1084 閱讀 2501

一、傳送方a:

生成私鑰:

openssl> genrsa -passout pass:123456 -out apri.pem 1024

生成公鑰:

openssl> rsa -passin pass:123456 -pubout -in apri.pem -out apub.pem

用b的公鑰加密資料:

openssl> rsautl -encrypt -pubin -inkey bpub.pem -in data.txt -out edata.txt

計算資料的訊息摘要:

openssl> dgst -sha1 -out md.txt data.txt

用a的私鑰給訊息摘要簽名:

openssl> rsautl -sign -inkey apri.pem -in md.txt -out signature.bin

將edata.txt和signature.bin傳送給接收方b

二、接收方b

生成私鑰:

openssl> genrsa -passout pass:654321 -out bpri.pem 1024

生成公鑰:

openssl> rsa -passin pass:654321 -pubout -in bpri.pem -out bpub.pem

用b的私鑰解密資料:

openssl> rsautl -decrypt -inkey bpri.pem -in edata.txt -out data.txt

計算data.txt的資訊摘要:

openssl> dgst -sha1 -out ms2.txt data.txt

用a的公鑰解密數字簽名:

openssl> rsautl -verify -pubin -inkey apub.pem -in signature.bin -out ms3.txt

最後比較:ms2.txt 和ms3.txt內容完全相同:

sha1(data.txt)= ad6910d33d5f96cbd7b9b3378107b8b04ba1c138

我的理解:  這裡的b其實就是相當於ca機構給的公鑰和私鑰。不過這裡並沒有涉及到證書的操作。

OpenSSL命令列工具驗證數字簽名

from 一 傳送方a 生成私鑰 openssl genrsa passout pass 123456 out apri.pem 1024 生成公鑰 openssl rsa passin pass 123456 pubout in apri.pem out apub.pem 用b的公鑰加密資料 op...

Linux下基於openssl實現數字簽名

建立原檔案src.txt 也可以是任意型別的檔案 這裡僅作演示,輸入命令 echo this is a digital signature example.src.txta 建立私鑰 rsa加密演算法產生的2048位私鑰,並使用f4作為公鑰的e引數,將私鑰儲存在檔案key.pri中 openssl ...

如何用openssl命令列生成證書

老大要我在web server裡面加上https功能,可是但就使用openssl生成證書就耗費了我兩天時間,網上有很多相關的資料,但是都寫的很複雜,照著他們的來,還是走了很多彎路。我總結一下,步驟主要有 cd usr local ssl 二 拷貝openssl.cnf,把ssl下的openssl.c...