在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”。
注意:在实际应用中,为了安全起见,通常会将公钥分发给其他人,而私钥则妥善保管。这样,其他人可以使用你的公钥来验证你签名的文件,而不需要知道你的私钥。