2.8加密工具与散列
1、crypt是一個(gè)簡單的加密工具,它從stdin接受一個(gè)文件以及口令作為輸入,然后將加密數(shù)據(jù)輸出到stdout(因此要對輸入、輸出文件使用重定向)。
eg:$ crypt ?< input_file > output_file
Enter passphrase:
它會要求輸入一個(gè)口令。可以通過命令行參數(shù)來提供口令。
eg:$ crypt PASSPHRASE <input_file >encrypted_file
如果需要解密文件,可以使用:
$crypt PASSPHRASE -d < encrypted_file >output_file
2、gpg(GNU隱私保護(hù))是一種應(yīng)用廣泛的工具,它使用加密技術(shù)來保護(hù)文件,以確保數(shù)據(jù)在送達(dá)目的地之前無法被讀取。注意:gpg簽名同樣廣泛用于在電子郵件通信中的郵件“簽名”,以證明發(fā)送方的真實(shí)性。
用gpg加密文件
eg:$ gpg -c filename
該命令采用交互方式讀取口令,并生成filename.gpg.使用以下命令解密gpg文件:
$ gpg filename.gpg
該命令讀取口令,然后對文件進(jìn)行解密。
3、Base64是一組相似的編碼方案,它將ASCII字符轉(zhuǎn)換成以64為基數(shù)的形式,以可讀的ASCII字符串來描述二進(jìn)制數(shù)據(jù)。base64命令可以用來編碼/解碼Base64字符串。要將文件編碼為Base64格式,使用:
eg:$ base64 filename > outputfile
或者
$cat file | base64 >outputfile
base64可以從stdin中進(jìn)行讀取。
解碼Base64數(shù)據(jù):
$base64 -d file > outputifile
或者
$cat base64_file | base64 -d > outputfile
4、md5sum與sha1sum都是單向散列算法,均無法逆推出原始數(shù)據(jù)。他們通常用于驗(yàn)證數(shù)據(jù)完整性或?yàn)樘囟〝?shù)據(jù)生成唯一的密鑰:
eg:$ md5sum file
$sha1sum file
這種類型的散列算法是存儲密碼的理想方案。密碼使用其對應(yīng)的散列值來存儲。如果某個(gè)用戶需要進(jìn)行認(rèn)證,讀取該用戶提供的密碼并轉(zhuǎn)換成散列值,然后將其與之前的存儲的散列值進(jìn)行對比。
注意:md5sum和SHA-1已不再安全,這是由于計(jì)算能力的攀升,推薦使用bcrypt或sha512sum這類工具進(jìn)行加密。
5、shadow-like散列(salt散列)
在Linux中,用戶密碼是以散列值形式存儲在文件/etc/shadow中的,該文件中的散列值是以"."的形式連接的。下面使用openssl生成shadow密碼:
shadow密碼通常都是salt密碼。所謂的SALT就是額外的一個(gè)字符串,用來起一個(gè)混淆的作用,使加密更加不易被破解。salt由一些隨機(jī)位組成,被用作密鑰生成函數(shù)的輸入之一,以生成密碼的salt散列值。
eg:$ openssl passwd -1 -salt SALT_STRING PASSWD
$1$SALT_STRING$323VkWkSLHuhbt1zkSsUG.
將SALT_STRING替換為隨機(jī)字符串,并將PASSWORD替換成自己的密碼。
?
轉(zhuǎn)載于:https://www.cnblogs.com/gary-guo/p/6168979.html
總結(jié)
以上是生活随笔為你收集整理的2.8加密工具与散列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#-WinForm-无边框窗体的移动和
- 下一篇: return,break,continu