OpenSSL是一个强大的安全套接字层密码库,提供了许多加密算法、密钥和证书管理功能以及SSL协议。在Ubuntu上使用OpenSSL时,以下是一些基本的使用技巧和步骤:
sudo apt update
sudo apt upgrade
sudo apt install openssl libssl-dev
openssl version
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
./config --prefix=/usr/local/openssl openssldir=/usr/local/openssl
make
sudo make install
编辑~/.bashrc
文件,添加以下内容:
export PATH=/usr/local/openssl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
然后执行:
source ~/.bashrc
# 生成RSA密钥对
openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -pubout -out public.pem
# 使用私钥加密
openssl rsautl -encrypt -inkey private.pem -in plaintext.txt -out encrypted.txt
# 使用公钥解密
openssl rsautl -decrypt -inkey public.pem -in encrypted.txt -out decrypted.txt
创建一个名为encrypt_decrypt.sh
的脚本文件,并将以下内容粘贴到文件中:
#!/bin/bash
encrypt() {
echo "Encrypting..."
echo -n "1" | openssl enc -aes-256-cbc -a -salt -pass pass:mypassword -out encrypted.txt
echo "Encryption complete. Encrypted data saved to encrypted.txt"
}
decrypt() {
echo "Decrypting..."
openssl enc -aes-256-cbc -d -a -in encrypted.txt -pass pass:mypassword -out decrypted.txt
echo "Decryption complete. Decrypted data saved to decrypted.txt"
}
if [ "$#" -ne 2 ]; then
echo "Usage: $0 {encrypt|decrypt} input_string"
exit 1
fi
case "$1" in
encrypt)
encrypt "$2"
;;
decrypt)
decrypt "$2"
;;
*)
echo "Invalid option. Use 'encrypt' or 'decrypt'."
exit 1
;;
esac
为脚本添加可执行权限:
chmod +x encrypt_decrypt.sh
运行脚本,传入参数encrypt
或decrypt
以及要加密或解密的字符串:
./encrypt_decrypt.sh encrypt "Hello, World!"
请注意,上述示例中的路径和文件名可能需要根据您的实际情况进行调整。此外,OpenSSL的配置和使用可能会随着版本的更新而发生变化,建议查阅相关版本的官方文档以获取最准确的信息。