0514-86177077
9:00-17:00(工作日)
PHP crypt() 函數(shù)
定義和用法
crypt() 函數(shù)返回使用 DES、Blowfish 或 MD5 算法加密的字符串。
在不同的操作系統(tǒng)上,該函數(shù)的行為不同,某些操作系統(tǒng)支持一種以上的算法類型。在安裝時,PHP 會檢查什么算法可用以及使用什么算法。
確切的算法依賴于 salt 參數(shù)的格式和長度。salt 可以通過增加由一個特定字符串與一個特定的加密方法生成的字符串的數(shù)量來使得加密更安全。
這里有一些和 crypt() 函數(shù)一起使用的常量。這些常量值是在安裝時由 PHP 設(shè)置的。
常量:
在該函數(shù)支持多種算法的系統(tǒng)上,上面的常量如果支持則設(shè)置為 "1",否則設(shè)置為 "0"。
注釋: 沒有相應的解密函數(shù)。crypt() 函數(shù)使用一種單向算法。
語法
crypt( _str,salt_ )
實例 1
?php $hashed_password = crypt('mypassword'); // 自動生成鹽值 /* 你應當使用 crypt() 得到的完整結(jié)果作為鹽值進行密碼校驗,以此來避免使用不同散列算法導致的問題。(如上所述,基于標準 DES 算法的密碼散列使用 2 字符鹽值,但是基于 MD5 算法的散列使用 12 個字符鹽值。)*/ if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) { echo "Password verified!"; } ?>
實例 2
利用 htpasswd 進行 crypt() 加密:
?php // 設(shè)置密碼 $password = 'mypassword'; // 獲取散列值,使用自動鹽值 $hash = crypt($password); ?>
在本實例中,我們以不同散列類型使用:
?php if (CRYPT_STD_DES == 1) { echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n"; } if (CRYPT_EXT_DES == 1) { echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n"; } if (CRYPT_MD5 == 1) { echo 'MD5: ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n"; } if (CRYPT_BLOWFISH == 1) { echo 'Blowfish: ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n"; } if (CRYPT_SHA256 == 1) { echo 'SHA-256: ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "\n"; } if (CRYPT_SHA512 == 1) { echo 'SHA-512: ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "\n"; } ?>
上面的代碼輸出如下(取決于操作系統(tǒng)):
Standard DES: rl.3StKT.4T8M Extended DES: _J9..rasmBYk8r9AiWNc MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0 Blowfish: $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi SHA-256: $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6 SHA-512: $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
標簽:遂寧 遵義 常州 徐州 寧夏 荊門 吐魯番 武威
上一篇:phpinfo無法顯示的原因及解決辦法
下一篇:PHP基于curl實現(xiàn)模擬微信瀏覽器打開微信鏈接的方法示例
Copyright ? 1999-2012 誠信 合法 規(guī)范的巨人網(wǎng)絡通訊始建于2005年
蘇ICP備15040257號-8