linux之md5sum
在網絡傳輸、設備之間轉存、複製大文件等時,可能會出現傳輸前後數據不一致的情況。這種情況在網絡這種相對更不穩定的環境中,容易出現。那麼校驗文件的完整性,也是勢在必行的。
md5sum命令用於生成和校驗文件的md5值。它會逐位對文件的內容進行校驗。是文件的內容,與文件名無關,也就是文件內容相同,其md5值相同。md5值是一個128位的二進制數據,轉換成16進制則是32(128/4)位的進制值。
md5校驗,有很小的概率不同的文件生成的md5可能相同。比md5更安全的校驗算法還有SHA*系列的。
在網絡傳輸時,我們校驗源文件獲得其md5sum,傳輸完畢後,校驗其目標文件,並對比如果源文件和目標文件md5 一致的話,則表示文件傳輸無異常。否則說明文件在傳輸過程中未正確傳輸。
重要的選項
- -b 以二進制模式讀入文件內容
- -t 以文本模式讀入文件內容
- -c 根據已生成的md5值,對現存文件進行校驗
- --status 校驗完成後,不生成錯誤或正確的提示信息,可以通過命令的返回值來判斷。
linux產生隨機數的方法
1)使用系統變量$RANDOM 0-32767 加密性不好,利用md5sum並截取需要的位數
echo "$RANDOM" |md5sum|cut -c 1-8
2)通過openssl產生隨機數
openssl rand -base64 8
3)通過時間date 獲得隨機數
date +%s%N %s從linux系統開始到現在的秒數,%N納秒
4)通過UUID生成隨機數
UUID全稱爲通用唯一識別碼(Universally Unique Identifier,UUID)
是一個軟件建構的標準,亦爲自由軟件基金會Open Software Foundation OSF
的組織在分佈式計算環境Distributed Computin Environment DCE領域的一部分
cat /proc/sys/kernel/random/uuid
5)expect附帶的mkpasswd生成
mkpasswd命令依賴於expect 必須安裝
mkpasswd -l 9 -d 2 -c 3 -C 3 -s 1
-l 指定密碼長度 默認爲9 length
-d 指定密碼中的數字數量 默認爲2 digits
-c 指定密碼中小寫字母的數量 默認爲2 lowercase chars
-C 指定密碼中大寫字母的數量 默認爲2 upper chars
-s 指定密碼中的特殊字符數量 默認爲1 special chars
以上都必須有