在Ubuntu系統中,使用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 file_to_sign.txt
這里,-sha256
表示使用SHA-256哈希算法,-sign
表示使用私鑰進行簽名,signature.bin
是生成的簽名文件,file_to_sign.txt
是要簽名的文件。
openssl dgst -sha256 -verify public_key.pem -signature signature.bin file_to_sign.txt
這里,-verify
表示使用公鑰進行驗證。如果驗證成功,將輸出“Verified OK”。如果驗證失敗,將輸出“Verification Failure”。
注意:在實際應用中,為了安全起見,通常會將公鑰分發給其他人,而私鑰則妥善保管。這樣,其他人可以使用你的公鑰來驗證你簽名的文件,而不需要知道你的私鑰。