一、md5
要說php中的最常用的加密方式,md5可以說是當仁不讓。
使用起來也很簡單便捷。
注:使用方式請看 六、md5加密方式的漏洞及解決方案
二、password_hash
作為php5.5以上版本專門用於加密的方式,自然有其獨到之處。
優點:安全性極高
缺點:php專有函式,不能在其他語言上進行驗證。
三、sha1
和md5作用類似,加密方式也類似,相當於md5的加強版吧,據說是比md5稍微安全一點
簡單使用:
<?php $str = "45456mkmk&&@#$544564";$str = sha1($str);echo $str;//80079e03d65a4ba2314ddca239e7ee08ee50bd2d四、openssl_encrypt(推薦)
作為被廢棄的mycrypt加密方式的替代,openssl_encrypt自然有很大改進。條件允許,這款加密方式也比較安全方便,破解起來非常困難。
簡單的使用:
<?php $str = 'mmmo56451212158ss0';$openssl_key = '4541&ͷ@66';$en_method = 'aes-256-ecb';//get_openssl_cipher_methods();//獲取openssl_encrypt的加密方式列表//openssl_encrypt加密$str_en = openssl_encrypt($str,$en_method,$openssl_key);echo $str_en;//r8zhayegbio2fuvgrj1ld9bhja3bjsrxdbovc83exc0=echo "";//openssl_decrypt解密$str_de = openssl_decrypt('r8zhayegbio2fuvgrj1ld9bhja3bjsrxdbovc83exc0=',$en_method,$openssl_key);echo $str_de;//mmmo56451212158ss0/*** 獲取openssl_encrypt method* 就是openssl_encrypt的第二個引數*/function get_openssl_cipher_methods()理論上,上面的**應該返回false,但實際上卻返回了true,這就造成了md5加密方式的漏洞。五、base64_encode
<?php //對進行64位編碼 $img_en = base64_encode(file_get_contents('./233.jpg')); //注:編碼後,會生成一串字串,將此生成的字串填入img的標籤裡即可,如下 ?>六、md5加密方式的漏洞及解決方案
**:<?php $str1 = 's878926199a';$str2 = 's214587387a';//echo md5($str1);//0e545993274517709034328855841020//echo md5($str2);//0e848240448830537924465865611904if (md5($str1) == md5($str2)) else
原因:php在處理雜湊字串時,會利用」!=」或」==」來對雜湊值進行比較,它把每乙個以」0e」開頭的雜湊值都解釋為0,所以如果兩個不同的密碼經過雜湊以後,其雜湊值都是以」0e」開頭的,那麼php將會認為他們相同,都是0。
解決方案:
(1)在用md5進行加密時,至少要將md5加密兩次以上(包含兩次),或者再加上鹽進行加密。如下:
<?php $str1 = 's878926199a';$str2 = 's214587387a';$key = '6655&&skks@';//雙重md5加密方式//echo md5(md5($str1))."(2)使用其他加密方式,比如password_hash,openssl_encrypt";//b91d1a7e392c6041ae80b5c6c74a1d83//echo md5(md5($str2));//31e723c4b5c80632064006c430236731//md5加鹽加密方式//echo md5($str1.$key)."
";//ade1b1ba6d7858ca5581268765184c81//echo md5($str2.$key);//36ef02a862366d6dc53c1aa835eadf87//雙重md5加鹽加密方式//echo md5(md5($str1.$key))."
";//bcc445ad0e2f0d5bc8d57185ea2b9184//echo md5(md5($str2.$key));//90a5e5be9dd2176a63faa28e623dfdb3
php中常用的加密方式
一 md5 要說php中的最常用的加密方式,md5可以說是當仁不讓。使用起來也很簡單便捷。注 使用方式請看 六 md5加密方式的漏洞及解決方案 二 password hash 作為php5.5以上版本專門用於加密的方式,自然有其獨到之處。優點 安全性極高 缺點 php專有函式,不能在其他語言上進行驗...
php中常用的加密方式
一 md5 要說php中的最常用的加密方式,md5可以說是當仁不讓。使用起來也很簡單便捷。注 使用方式請看 六 md5加密方式的漏洞及解決方案 二 password hash 作為php5.5以上版本專門用於加密的方式,自然有其獨到之處。優點 安全性極高 缺點 php專有函式,不能在其他語言上進行驗...
php中常用的加密方式
一 md5 要說php中的最常用的加密方式,md5可以說是當仁不讓。使用起來也很簡單便捷。注 使用方式請看 六 md5加密方式的漏洞及解決方案 二 password hash 作為php5.5以上版本專門用於加密的方式,自然有其獨到之處。優點 安全性極高 缺點 php專有函式,不能在其他語言上進行驗...