使用 OpenSSL 进行 AES 的 ECB(电子密码本)模式加解密相对简单。以下是基本步骤:
openssl rand -out aes_key.bin 16 # 生成 128 位(16 字节)的 AES 密钥
openssl rand -out aes_key.bin 24 # 生成 192 位(24 字节)的 AES 密钥
openssl rand -out aes_key.bin 32 # 生成 256 位(32 字节)的 AES 密钥
openssl enc -aes-128-ecb -in message.txt -out encrypted_message.bin -kfile aes_key.bin
这里,aes_key.bin 是你的 AES 密钥文件,encrypted_message.bin 是加密后的数据文件。-aes-128-ecb 指定了 AES 的加密模式和密钥长度。你可以根据需要替换为 -aes-192-ecb 或 -aes-256-ecb。
openssl enc -d -aes-128-ecb -in encrypted_message.bin -out decrypted_message.txt -kfile aes_key.bin
这里,decrypted_message.txt 是解密后的数据文件。
请注意,虽然 ECB 模式在某些情况下仍然有用,但它不如 CBC 或其他更复杂的模式安全,因为它不提供混淆效果。在实际应用中,除非有特定的理由,否则通常推荐使用 CBC 或其他更安全的模式。此外,确保你的密钥安全存储,并且只在需要时才使用,以防止密钥泄露。
以下是使用 OpenSSL 进行 AES 的 的 CBC(密码块链接模式)模式加解密的基本步骤:
openssl rand -out aes_key.bin 16 # 生成 128 位(16 字节)的 AES 密钥
openssl rand -out aes_key.bin 24 # 生成 192 位(24 字节)的 AES 密钥
openssl rand -out aes_key.bin 32 # 生成 256 位(32 字节)的 AES 密钥
openssl enc -aes-128-cbc -in message.txt -out encrypted_message.bin -kfile aes_key.bin
这里,aes_key.bin 是你的 AES 密钥文件,encrypted_message.bin 是加密后的数据文件。-aes-128-cbc 指定了 AES 的加密模式和密钥长度。你可以根据需要替换为 -aes-192-cbc 或 -aes-256-cbc。
openssl enc -d -aes-128-cbc -in encrypted_message.bin -out decrypted_message.txt -kfile aes_key.bin
这里,decrypted_message.txt 是解密后的数据文件。
openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem
这里,private_key.pem 是私钥文件,public_key.pem 是公钥文件。
2.加密数据:
使用公钥加密数据。假设你有一个名为 message.txt 的文件,你可以这样加密它:
openssl rsautl -encrypt -inkey public_key.pem -pubin -in message.txt -out encrypted_message.bin
这里,encrypted_message.bin 是加密后的数据文件。
3.解密数据:
使用私钥解密之前加密的数据:
openssl rsautl -decrypt -inkey private_key.pem -in encrypted_message.bin -out decrypted_message.txt
这里,decrypted_message.txt 是解密后的数据文件。
RSA 加解密和 AES 加解密是两种不同类型的加密技术,它们在安全性、效率和用途上有显著的区别:
使用 OpenSSL 进行 RSA 数字签名和验签的过程涉及到几个步骤,包括生成 RSA 密钥对、创建签名、验证签名等。以下是详细的步骤:
openssl genrsa -out private_key.pem 2048 # 生成 2048 位的私钥
openssl rsa -in private_key.pem -pubout -out public_key.pem # 从私钥生成公钥
openssl dgst -sha256 -sign private_key.pem -out signature.bin message.txt
这里,signature.bin 是签名文件,message.txt 是你想要签名的文件。-sha256 指定了使用的哈希算法,你可以根据需要选择其他哈希算法,如 -sha1 或 -sha512。
openssl dgst -sha256 -verify public_key.pem -signature signature.bin message.txt
如果签名验证成功,OpenSSL 将不会输出任何内容。如果签名无效或文件被篡改,OpenSSL 会显示错误信息。
签名过程使用的哈希算法应该与验证过程中使用的哈希算法一致。此外,确保你的私钥安全存储,不要泄露给未经授权的人。公钥可以公开分享,用于验证签名。