使用OpenSSL進行數字簽名通常涉及兩個主要步驟:生成密鑰對(如果還沒有)和創建數字簽名。以下是詳細步驟:
首先,你需要生成一個私鑰和一個公鑰。私鑰用于創建簽名,而公鑰用于驗證簽名。
openssl genpkey -algorithm RSA -out private_key.pem -aes256
這個命令會生成一個2048位的RSA私鑰,并使用AES-256加密保護私鑰文件。系統會提示你輸入一個密碼來保護私鑰。
接下來,從私鑰生成公鑰:
openssl rsa -in private_key.pem -pubout -out public_key.pem
這個命令會從私鑰文件private_key.pem
中提取公鑰,并將其保存到public_key.pem
文件中。
假設你已經有了要簽名的數據文件data.txt
,你可以使用以下命令來創建數字簽名:
openssl dgst -sha256 -sign private_key.pem -out signature.bin data.txt
這個命令會對data.txt
文件進行SHA-256哈希運算,并使用私鑰private_key.pem
來創建數字簽名,簽名結果將保存在signature.bin
文件中。
為了驗證數字簽名,你需要使用公鑰和原始數據文件。以下是驗證簽名的命令:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txt
如果簽名有效,命令將輸出Verified OK
。如果簽名無效,將輸出Verification Failure
。
通過以上步驟,你可以使用OpenSSL輕松地進行數字簽名和驗證。