一、傳送方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...