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的配置和使用可能會隨著版本的更新而發生變化,建議查閱相關版本的官方文檔以獲取最準確的信息。