歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 文件加密

Linux 文件加密

日期:2017/2/28 14:52:23   编辑:Linux教程

1. base64編碼/解碼
談到命令行下怎樣發送郵件附件,很多人想起了uuencode。也能夠使用base64編碼。以下是openssl base64編碼/解碼的使用:
$ openssl base64 filename.txt
$ openssl base64 -d filename.bin

2. 校驗文檔的一致性
UNIX下校驗文檔一致性的方法很多,比如sum、cksum、md5sum、sha1sum等。sum和cksum適用於簡單校驗的場合,生成的校驗碼容易重復。md5sum有安全漏洞,當前比較推薦的是sha1sum。但是sha1sum在不同的平台用法有些不同。考慮到跨平台性,建議用openssl。
$ openssl sha1 filename
SHA1(filename)= e83a42b9bc8431a6645099be50b6341a35d3dceb
$ openssl md5 filename
MD5(filename)= 26e9855f8ad6a5906fea121283c729c4

3. 文檔加密/解密
OpenSSL支持很多加密算法,但是一些算法只是為了保持向後兼容性,現在已不推薦使用,比如DES和RC4-40。推薦使用的加密算法是bf(Blowfish)和-aes-128-cbc(運行在CBC模式的128位密匙AES加密算法),加密強度有保障。
加密示例:
$ openssl enc -aes-128-cbc filename.aes-128-cbc
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
解密示例:
$ openssl enc -d -aes-128-cbc -in filename.aes-128-cbc > filename
enter aes-128-cbc decryption password:

4. 口令生成和傳遞
openssl能夠生成隨機性很強的口令。
$ openssl rand 15 -base64
s69mj+8ToN2p3Z1KESBG
以上命令需要openssl生成15個字節序列,然後用base64編碼,結果產生20個字符。
在日常生活中,經常可看到這樣的情況:系統管理員配置初始密碼給用戶,然後讓用戶登錄去修改新密碼,這給安全帶來了隱患。較好的做法是用戶生成口令加密後的結果發給管理員,讓管理員配置到系統中。
比如對於以上生成的口令,UNIX口令加密方法如下:
$ openssl passwd -1 s69mj+8ToN2p3Z1KESBG
$1$Rp/btEwK$qhUGFlsIpDtNT1I9MD/Gg1
管理員收集每個用戶交給他的加密後的串,寫到一個文檔中,比如文檔名為newpassword:
user_a:$1$Rp/btEwK$qhUGFlsIpDtNT1I9MD/Gg1
user_b:$1$zmUy5lry$aG45DkcaJwM/GNlpBLTDy0
...
一個用戶一行,用戶名和密碼之間用冒號分隔。
系統管理員運行如下命令導入用戶密碼:
$ chpasswd --encrypted
對於老UNIX系統,生成口令密碼無需參數-1,比如:
$ openssl passwd s69mj+8ToN2p3Z1KESBG
Warning: truncating password to 8 characters
FS4lGulQ915WU
假如passwd命令後沒有接口令,openssl會提示輸入一個:
$ openssl passwd -1
Password:
Verifying - Password:
$1$jACBc0.C$KR5DcpttXQoKfDiapyvav0

Copyright © Linux教程網 All Rights Reserved