本文介紹如何在Debian系統(tǒng)中利用OpenSSL進(jìn)行數(shù)據(jù)加密和解密,涵蓋對(duì)稱(chēng)加密(AES-256-CBC)和非對(duì)稱(chēng)加密(RSA),以及數(shù)字簽名。
一、 OpenSSL安裝
首先,請(qǐng)確保已安裝OpenSSL。若未安裝,請(qǐng)執(zhí)行以下命令:
sudo apt update sudo apt install openssl
二、 對(duì)稱(chēng)加密 (AES-256-CBC)
對(duì)稱(chēng)加密使用同一密鑰進(jìn)行加密和解密。以下示例使用AES-256-CBC算法:
加密:
echo "這是一個(gè)秘密信息" | openssl enc -aes-256-cbc -a -salt -pbkdf2 -out 加密信息.enc
參數(shù)說(shuō)明:-aes-256-cbc 指定算法;-a 使用Base64編碼;-salt 添加鹽值增強(qiáng)安全性;-pbkdf2 使用PBKDF2密鑰派生;-out 加密信息.enc 指定輸出文件名。
解密:
openssl enc -d -aes-256-cbc -a -pbkdf2 -in 加密信息.enc -out 解密信息.txt
參數(shù)說(shuō)明:-d 解密模式;-in 加密信息.enc 指定輸入文件名;-out 解密信息.txt 指定輸出文件名。
三、 非對(duì)稱(chēng)加密 (RSA)
非對(duì)稱(chēng)加密使用公鑰加密,私鑰解密。
1. 生成RSA密鑰對(duì):
openssl genpkey -algorithm RSA -out rsa_key.pem -aes256
參數(shù)說(shuō)明:-algorithm RSA 指定RSA算法;-out rsa_key.pem 指定私鑰文件名;-aes256 使用AES-256加密私鑰。
2. 提取公鑰:
openssl rsa -pubout -in rsa_key.pem -out rsa_public_key.pem
參數(shù)說(shuō)明:-pubout 提取公鑰;-in rsa_key.pem 指定私鑰文件名;-out rsa_public_key.pem 指定公鑰文件名。
3. 加密:
echo "這是一個(gè)秘密信息" | openssl pkeyutl -encrypt -pubin -inkey rsa_public_key.pem -out 加密信息.enc
參數(shù)說(shuō)明:-encrypt 加密模式;-pubin 使用公鑰加密;-inkey rsa_public_key.pem 指定公鑰文件名;-out 加密信息.enc 指定輸出文件名。
4. 解密:
openssl pkeyutl -decrypt -inkey rsa_key.pem -in 加密信息.enc -out 解密信息.txt
參數(shù)說(shuō)明:-decrypt 解密模式;-inkey rsa_key.pem 指定私鑰文件名;-in 加密信息.enc 指定輸入文件名;-out 解密信息.txt 指定輸出文件名。
四、 數(shù)字簽名
數(shù)字簽名用于驗(yàn)證數(shù)據(jù)完整性和來(lái)源。
1. 生成RSA密鑰對(duì) (如果尚未生成): (與非對(duì)稱(chēng)加密步驟相同)
2. 生成簽名:
echo "這是一個(gè)秘密信息" | openssl dgst -sha256 -sign rsa_key.pem -out 簽名.bin
參數(shù)說(shuō)明:-sha256 使用SHA-256哈希算法;-sign rsa_key.pem 使用私鑰簽名;-out 簽名.bin 指定簽名文件名。
3. 驗(yàn)證簽名:
openssl dgst -sha256 -verify rsa_public_key.pem -signature 簽名.bin -data "這是一個(gè)秘密信息"
參數(shù)說(shuō)明:-verify rsa_public_key.pem 使用公鑰驗(yàn)證;-signature 簽名.bin 指定簽名文件名;-data “這是一個(gè)秘密信息” 指定要驗(yàn)證的數(shù)據(jù)。
通過(guò)以上步驟,您可以在Debian系統(tǒng)中有效地使用OpenSSL進(jìn)行數(shù)據(jù)加密、解密和數(shù)字簽名。 請(qǐng)根據(jù)您的具體需求選擇合適的加密方法。