php中常用的加密方式

2021-10-20 20:00:17 字數 2252 閱讀 5778

一、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()

五、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

理論上,上面的**應該返回false,但實際上卻返回了true,這就造成了md5加密方式的漏洞。

原因:php在處理雜湊字串時,會利用」!=」或」==」來對雜湊值進行比較,它把每乙個以」0e」開頭的雜湊值都解釋為0,所以如果兩個不同的密碼經過雜湊以後,其雜湊值都是以」0e」開頭的,那麼php將會認為他們相同,都是0。

解決方案:

(1)在用md5進行加密時,至少要將md5加密兩次以上(包含兩次),或者再加上鹽進行加密。如下:

<?php $str1 = 's878926199a';$str2 = 's214587387a';$key = '6655&&skks@';//雙重md5加密方式//echo md5(md5($str1))."

";//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

(2)使用其他加密方式,比如password_hash,openssl_encrypt

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專有函式,不能在其他語言上進行驗...