《PHP實例:PHP內(nèi)置加密函數(shù)詳解》要點:
本文介紹了PHP實例:PHP內(nèi)置加密函數(shù)詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
Md5()加密算法PHP實戰(zhàn)
方式: 單向加密PHP實戰(zhàn)
語法: md5(string $str [, bool $raw_output = false])PHP實戰(zhàn)
$str:原始字符串PHP實戰(zhàn)
$raw_output:如果可選的raw_output被設(shè)置為true, 那么md5報文摘要將以16字節(jié)長度的原始二進制格式返回. 返回以32位字符十六進制數(shù)字形式返回散列值PHP實戰(zhàn)
md5二次加密:md5(md5($string, true))PHP實戰(zhàn)
Crypt()加密算法PHP實戰(zhàn)
方式: 單向加密PHP實戰(zhàn)
語法: string crypt(string $str[, string $salt]) , 返回一個基于標(biāo)準(zhǔn)UNIX DES算法或系統(tǒng)上其它可用的替代算法的三列字符串PHP實戰(zhàn)
$str: 需要加密的明文PHP實戰(zhàn)
$salt: 加密時的干擾串,是編碼更安全PHP實戰(zhàn)
注意: 如果加密時沒有加上這個$salt參數(shù), 將隨機生成一個干擾串, 否則刷新加密秘文不變PHP實戰(zhàn)
算法常量:PHP實戰(zhàn)
[CRYPT_SALT_LENGTH]PHP實戰(zhàn)
默認(rèn)的加密長度.使用標(biāo)準(zhǔn)的 DES 加密,長度為 2PHP實戰(zhàn)
[CRYPT_STD_DES]PHP實戰(zhàn)
基于標(biāo)準(zhǔn) DES 算法的散列使用 "./0-9A-Za-z" 字符中的兩個字符作為鹽值.在鹽值中使用非法的字符將導(dǎo)致 crypt() 失敗.PHP實戰(zhàn)
[CRYPT_EXT_DES]PHP實戰(zhàn)
擴展的基于 DES 算法的散列.其鹽值為 9 個字符的字符串,由 1 個下劃線后面跟著 4 字節(jié)循環(huán)次數(shù)和 4 字節(jié)鹽值組成.它們被編碼成可打印字符,每個字符 6 位,有效位最少的優(yōu)先.0 到 63 被編碼為 "./0-9A-Za-z".在鹽值中使用非法的字符將導(dǎo)致 crypt() 失敗.PHP實戰(zhàn)
[CRYPT_MD5]PHP實戰(zhàn)
MD5 散列使用一個以 $1$ 開始的 12 字符的字符串鹽值.PHP實戰(zhàn)
[CRYPT_BLOWFISH]PHP實戰(zhàn)
Blowfish 算法使用如下鹽值:“$2a$”,一個兩位 cost 參數(shù),“$” 以及 64 位由 “./0-9A-Za-z” 中的字符組合而成的字符串.在鹽值中使用此范圍之外的字符將導(dǎo)致 crypt() 返回一個空字符串.兩位 cost 參數(shù)是循環(huán)次數(shù)以 2 為底的對數(shù),它的范圍是 04-31,超出這個范圍將導(dǎo)致 crypt() 失敗.PHP實戰(zhàn)
CRYPT_SHA256PHP實戰(zhàn)
SHA-256 算法使用一個以 $5$ 開頭的 16 字符字符串鹽值進行散列.如果鹽值字符串以 “rounds=<N>$” 開頭,N 的數(shù)字值將被用來指定散列循環(huán)的執(zhí)行次數(shù),這點很像 Blowfish 算法的 cost 參數(shù).默認(rèn)的循環(huán)次數(shù)是 5000,最小是 1000,最大是 999,999,999.超出這個范圍的 N 將會被轉(zhuǎn)換為最接近的值.PHP實戰(zhàn)
CRYPT_SHA512PHP實戰(zhàn)
SHA-512 算法使用一個以 $6$ 開頭的 16 字符字符串鹽值進行散列.如果鹽值字符串以 “rounds=<N>$” 開頭,N 的數(shù)字值將被用來指定散列循環(huán)的執(zhí)行次數(shù),這點很像 Blowfish 算法的 cost 參數(shù).默認(rèn)的循環(huán)次數(shù)是 5000,最小是 1000,最大是 999,999,999.超出這個范圍的 N 將會被轉(zhuǎn)換為最接近的值.PHP實戰(zhàn)
例:PHP實戰(zhàn)
if(CRYPT_MD5){ echo "MD5加密:".crypt('something','$1$somethin$'); }
Sha1()加密算法PHP實戰(zhàn)
方式: 單向加密PHP實戰(zhàn)
語法: string sha1(string $str [, bool $raw_output=false]) 計算字符串的sha1散列值PHP實戰(zhàn)
$str: 加密的字符串PHP實戰(zhàn)
$raw_output: 如果可選的raw_output參數(shù)被設(shè)置為TRUE, 那么sha1摘要將以20字符長度的原始格式返回, 否則返回值是一個40字符串長度的十六進制數(shù)字.PHP實戰(zhàn)
URL編碼加密技術(shù)PHP實戰(zhàn)
編碼URL字符串: urlencode(string $str)PHP實戰(zhàn)
解碼已編碼的URL字符串: urldeocde(string $str)PHP實戰(zhàn)
編碼規(guī)范: 此字符串中除了-_.之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進制數(shù), 空格則編碼為加號(+)PHP實戰(zhàn)
按照RFC1738對URL進行編碼: rawurlencode(string $str) : 返回從字符串,把空格編碼為%20PHP實戰(zhàn)
對已編碼的字符串進行解碼: rawurldecode(string $str) : 返回字符串, 此字符串中百分號%后跟兩位十六進制的序列豆將被替換成原義字符PHP實戰(zhàn)
urlencode和rawurlencode的區(qū)別只在于空格.PHP實戰(zhàn)
Base64編碼加密技術(shù)PHP實戰(zhàn)
使用base64對data進行編碼: base64_encode(string $data)PHP實戰(zhàn)
對使用MIME base64編碼的數(shù)據(jù)進行解碼: base64_decode(string $data[, $strict=false]) ; $strict:如果輸入的數(shù)據(jù)超出了base64的字母表,則返回false.PHP實戰(zhàn)
base64編碼的圖片還可以直接放在<img>標(biāo)簽中顯示:PHP實戰(zhàn)
<img src=編碼字符串" alt=""/>PHP實戰(zhàn)
<img src=編碼字符串" alt=""/>PHP實戰(zhàn)
信息加密技術(shù):PHP實戰(zhàn)
1 單項散列加密:PHP實戰(zhàn)
指通過不同輸入的長度的信息進行散列計算, 得到固定長度的輸出, 這個散列計算過程是單向的, 既不能對固定長度的輸出進行計算從而活兒輸出信息.PHP實戰(zhàn)
2 對稱散列加密PHP實戰(zhàn)
指加密和解密的密匙是同一個密匙或者可以互相推算.PHP實戰(zhàn)
3 非對稱散列加密PHP實戰(zhàn)
非對稱加密和解密的密匙不是同一個密匙, 其中一個對外公開, 被稱作公鑰, 另一個只有所有者知道.PHP實戰(zhàn)
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2625.html