OpenSSL如何實現數字簽名

OpenSSL如何實現數字簽名

Openssl是一個功能強大的開源工具庫,主要用于實現SSL和TLS協議,并且支持多種加密算法,其中包括數字簽名。以下是利用OpenSSL完成數字簽名的基本流程:

創建密鑰對

首先,需要創建一組公鑰與私鑰。私鑰用于簽名操作,而公鑰則用于確認簽名的有效性。

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048 openssl rsa -pubout -in private_key.pem -out public_key.pem

制作數字簽名

運用私鑰對數據執行簽名處理。

openssl dgst -sha256 -sign private_key.pem -out signature.bin data.txt
  • -sha256 表示采用SHA-256哈希算法。
  • -sign private_key.pem 指定使用的私鑰。
  • -out signature.bin 定義輸出簽名文件的位置。
  • data.txt 是待簽名的數據文檔。

核驗數字簽名

借助公鑰來檢查簽名是否準確無誤。

openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txt
  • -verify public_key.pem 確定使用公鑰來進行核驗。
  • -signature signature.bin 指定需要核驗的簽名文檔。
  • data.txt 是原始數據文檔。

若核驗成功,則會顯示“Verified OK”。若核驗失敗,則會提示錯誤信息。

示例

假設有這樣一個名為example.txt的文件,您希望對其實施簽名與核驗:

  1. 生成密鑰對

     openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048  openssl rsa -pubout -in private_key.pem -out public_key.pem
  2. 生成數字簽名

     openssl dgst -sha256 -sign private_key.pem -out signature.bin example.txt
  3. 驗證數字簽名

     openssl dgst -sha256 -verify public_key.pem -signature signature.bin example.txt

按照上述步驟,您可以利用OpenSSL便捷地達成數字簽名及核驗的目標。

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享