在Ubuntu系統中,使用OpenSSL加密文件可以通過多種方式實現,以下是兩種常用的方法:
enc
命令進行對稱加密生成密鑰:
openssl genpkey -algorithm AES-256-CBC -out secret.key
這將生成一個256位的AES密鑰并保存到secret.key
文件中。
加密文件:
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted_file.enc -pass file:./secret.key
這里,plaintext.txt
是要加密的文件,encrypted_file.enc
是加密后的文件,-pass file:./secret.key
指定了使用之前生成的密鑰文件進行加密。
解密文件:
openssl enc -d -aes-256-cbc -in encrypted_file.enc -out decrypted_file.txt -pass file:./secret.key
這將使用相同的密鑰文件解密encrypted_file.enc
并生成decrypted_file.txt
。
pkeyutl
命令進行非對稱加密(公鑰加密)生成密鑰對:
openssl genpkey -algorithm RSA -out rsa_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in rsa_key.pem -out rsa_key.pub
這將生成一個2048位的RSA密鑰對,私鑰保存在rsa_key.pem
,公鑰保存在rsa_key.pub
。
加密文件:
openssl pkeyutl -encrypt -in plaintext.txt -out encrypted_file.enc -pubin -inkey rsa_key.pub
這里,plaintext.txt
是要加密的文件,encrypted_file.enc
是加密后的文件,-pubin
表示使用公鑰進行加密,-inkey rsa_key.pub
指定了公鑰文件。
解密文件:
openssl pkeyutl -decrypt -in encrypted_file.enc -out decrypted_file.txt -inkey rsa_key.pem
這將使用私鑰文件rsa_key.pem
解密encrypted_file.enc
并生成decrypted_file.txt
。
通過以上方法,你可以在Ubuntu系統中使用OpenSSL進行文件加密和解密操作。