linux crypt()函數使用總結


原型:

char *crypt(const char *key, const char *salt);

標准說明:

crypt()算法會接受一個最長可達8字符的密鑰(即key),並施以數據加密算法(DES)的一種變體。salt參數指向一個兩個字符的字符串,用來改變DES算法。該函數返回一個指針,指向長度13個字符的字符串。

在glibc2中crypt函數擴展使用:

crypt支持的額外加密算法有MD5、Blowfish(某些特定的Linux系統支持)、SHA-256(glibc2.7開始)、SHA-512(glibc2.7開始),並通過salt以“$id$salt$encrypted” 這樣的格式區分不同算法,根據id的不同值選擇不同的加密算法來代替默認的DES算法,id的格式如下:

          ID  | Method
          ─────────────────────────────────────────────
          1   | MD5
          2a  | Blowfish (not in mainline glibc; added in some
              | Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

$5$salt$encrypted 的salt代表crypt函數使用SHA- 256加密算法 
$6$salt$encrypted 的salt代表crypt函數使用SHA-512加密算法 
$salt$ 中的salt最多支持長度為16字符的字符串,相比默認的DES算法支持最長為2字符有了很大的改進,最后crypt的返回值根據加密算法的不同也有不同長度的字符串返回。

   MD5     | 22 characters
   SHA-256 | 43 characters
   SHA-512 | 86 characters


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM