Shell編程之安全加密

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
以上都必須有

 

 

 

 

 

發佈了83 篇原創文章 · 獲贊 14 · 訪問量 2038
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章