国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP的幾個常用加密函數(shù)

zhkai / 1121人閱讀

摘要:原文來自在網(wǎng)站的開發(fā)過程中,常常需要對部分數(shù)據(jù)如用戶密碼進行加密,本文主要介紹的幾個常見的加密函數(shù)加密默認情況下以字符十六進制數(shù)字形式返回散列值,它接受兩個參數(shù),第一個為要加密的字符串,第二個為的布爾值,默認為,如果設(shè)置為,則會返回原始

原文來自:https://jellybool.com/post/php-encrypt-functions

在網(wǎng)站的開發(fā)過程中,常常需要對部分數(shù)據(jù)(如用戶密碼)進行加密,本文主要介紹PHP的幾個常見的加密函數(shù)

MD5加密:

string md5 ( string $str [, bool $raw_output = false ] )

1.md5()默認情況下以 32 字符十六進制數(shù)字形式返回散列值,它接受兩個參數(shù),第一個為要加密的字符串,第二個為raw_output的布爾值,默認為false,如果設(shè)置為true,md5()則會返回原始的 16 位二進制格式報文摘要

2.md5()為單向加密,沒有逆向解密算法,但是還是可以對一些常見的字符串通過收集,枚舉,碰撞等方法破解

";
echo md5($password);
echo "
"; /*更推薦的做法是對重要的敏感數(shù)據(jù)進行多次加密,以防被輕易破解*/ echo md5(md5($password)); /*以上輸出: username:4f5436e5d72608fb647b691e8edcf42e password:7bf02cf0f4af6da4accbc73d2a175476 password(兩次加密):864704bb35754f8cd0232cba6b91521b */

Crypt加密:

string crypt ( string $str [, string $salt ] )

1.crypt()接受兩個參數(shù),第一個為需要加密的字符串,第二個為鹽值(就是加密干擾值,如果沒有提供,則默認由PHP自動生成);返回散列后的字符串一個少于 13 字符的字符串,后者為了區(qū)別鹽值。

2.crypt()為單向加密,跟md5一樣。

";
echo crypt($password,"jellybool");
//輸出:je7fNiu1KNaEs
/*當我們要加自定義的鹽值時,如例子中的jellybool作為第二個參數(shù)直接加入,
超出兩位字符的會截取前兩位*/
echo "
"; echo crypt($password,"$1$jellybool$"); //輸出:$1$jellyboo$DxH7wF7SygRpWb6XBBgfH/ /* crypt加密函數(shù)有多種鹽值加密支持,以上例子展示的是MD5散列作為鹽值,該方式下 鹽值以$1$$的形式加入,如例子中的jellybool加在后兩個$符之間, 超出八位字符的會截取前八位,總長為12位;crypt默認就是這種形式。 */ echo "
"; //crypt還有多種鹽值加密支持,詳見手冊

Sha1加密:

string sha1 ( string $str [, bool $raw_output = false ]

1.跟md5很像,不同的是sha1()默認情況下返回40個字符的散列值,傳入?yún)?shù)性質(zhì)一樣,第一個為加密的字符串,第二個為raw_output的布爾值,默認為false,如果設(shè)置為true,sha1()則會返回原始的20 位原始格式報文摘要

2.sha1()也是單行加密,沒有逆向解密算法

";
//當然,可以將多種加密算法混合使用
echo md5(sha1($my_intro));
//輸出:94f25bf9214f88b1ef065a3f9b5d9874
//這種方式的雙重加密也可以提高數(shù)據(jù)的安全性

Urlencode加密:

string urlencode ( string $str )

1.一個參數(shù),傳入要加密的字符串(通常應(yīng)用于對URL的加密),

2.urlencode為雙向加密,可以用urldecode來加密(嚴格意義上來說,不算真正的加密)

3.返回字符串,此字符串中除了 -_. 之外的所有非字母數(shù)字字符都將被替換成百分號(%)后跟兩位十六進制數(shù),空格則編碼為加號(+)。

";
$my_urldecode="jellybool.com%3Fjellybool%3Dtrue+%2B+4-3%255%3D+%5C%26+%40%21";
echo urldecode($my_urldecode);
//輸出:jellybool.com?jellybool=true + 4-3%5= & @! 
//還原了$my_urlencode的輸出
echo "
"; $my_urldecode="http://www.baidu.com/s?word=jellybool+%E8%A7%89%E7%B4%AF%E4%B8%8D%E7%88%B1&tn=98236947_hao_pg&ie=utf-8"; echo urldecode($my_urldecode); /*輸出:http://www.baidu.com/s?word=jellybool 覺累不愛&tn=98236947_hao_pg&ie=utf-8 沒錯,這就是在百度搜索jellybool 覺累不愛 */ /* ========================================================================= 解決第二個經(jīng)典問題 ========================================================================= */ $pre_url_encode="jellybool.com?username=jellybool&password=jelly"; //在實際開發(fā)中,我們很多時候要構(gòu)造這種URL,這是沒有問題的 $url_decode ="jellybool.com?username=jelly&bool&password=jelly"; /*注意上面兩個變量的差別:第一個的username=jellybool, 第二個為username=jelly&bool 這種情況下用$_GET()來接受是會出問題的,這是可以用下面的方法解決 */ $username="jelly&bool"; $url_decode ="jellybool.com?username=".urlencode($username)."&password=jelly"; //這是可以很好的解決問題 /* 總結(jié)一下常見的urlencode()的轉(zhuǎn)換字符 ?=> %3F = => %3D % => %25 & => %26 => %5C

=> %2B
空格 => +

*/

base64編碼加密:

string base64_decode ( string $encoded_data )

1.base64_encode()接受一個參數(shù),也就是要編碼的數(shù)據(jù)(這里不說字符串,是因為很多時候base64用來編碼圖片)

2.base64_encode()為雙向加密,可用base64_decode()來解密

echo base64_encode($my_intro);
echo "
"; /*輸出:SmVsbHlCb29s5piv5LiA5Liq6Lqr5p2Q5pyJ6auY5bqmLOiCqeiGgOacieWuveW 6pizog7jogozmnInljprluqYs5oCd5oOz5pyJ5rex5bqm55qE5Zu95a625YWN5qOA5Lq UQee6p+S8mOi0qOS8quWJjeerr0lU55S35bGM5Lid */ echo base64_decode("SmVsbHlCb29s5piv5LiA5Liq6Lqr5p2Q5pyJ6auY5bqmLOiCqeiGg OacieWuveW6pizog7jogozmnInljprluqYs5oCd5oOz5pyJ5rex5bqm55qE5Zu95a6 25YWN5qOA5LqUQee6p+S8mOi0qOS8quWJjeerr0lU55S35bGM5Lid"); /*輸出:JellyBool是一個身材有高度,肩膀有寬度,胸肌有厚度,思想有深度的國家免檢五A 級優(yōu)質(zhì)偽前端IT男屌絲 */

一個圖片的例子:

$data=file_get_contents($filename);
echo base64_encode($data);
/*然后你查看網(wǎng)頁源碼就會得到一大串base64的字符串,
再用base64_decode()還原就可以得到圖片
*/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20818.html

相關(guān)文章

  • PHP回顧之發(fā)送郵件

    摘要:隨著云服務(wù)器的盛行,幾乎無法以指向本機的域名向外發(fā)送郵件,除了在本機內(nèi)發(fā)送提醒郵件,用處已然不大。發(fā)送效率低非面向?qū)ο蟮恼{(diào)用方式,配置麻煩以及云服務(wù)器廠商的封鎖,是使用函數(shù)的最大阻礙。 轉(zhuǎn)載請注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請求 cookie web響應(yīng) session 數(shù)據(jù)庫操作 加解密 Co...

    smallStone 評論0 收藏0
  • PHP處理密碼的幾種方式

    摘要:這里使用你完全可以不提供鹽值和消耗值,你可以將后者理解為一種性能的消耗值,越大,加密算法越復(fù)雜,消耗的內(nèi)存也就越大。 原文來自: https://jellybool.com/post/php-password-hash-in-the-right-way 在使用PHP開發(fā)Web應(yīng)用的中,很多的應(yīng)用都會要求用戶注冊,而注冊的時候就需要我們對用戶的信息進行處理了,最常見的莫過于就是郵箱和密...

    HackerShell 評論0 收藏0
  • PHP處理密碼的幾種方式

    摘要:這里使用你完全可以不提供鹽值和消耗值,你可以將后者理解為一種性能的消耗值,越大,加密算法越復(fù)雜,消耗的內(nèi)存也就越大。 原文來自: https://jellybool.com/post/php-password-hash-in-the-right-way 在使用PHP開發(fā)Web應(yīng)用的中,很多的應(yīng)用都會要求用戶注冊,而注冊的時候就需要我們對用戶的信息進行處理了,最常見的莫過于就是...

    wean 評論0 收藏0
  • SOA面向服務(wù)基礎(chǔ)

    摘要:面向服務(wù)面向服務(wù)的基礎(chǔ)面向服務(wù)的三層應(yīng)用層,服務(wù)層,數(shù)據(jù)層應(yīng)用層用于給用戶展示,,,,安卓。在服務(wù)器端,進程保持睡眠狀態(tài)直到調(diào)用信息到達為止。編譯完成,提示我們已經(jīng)在下了。 面向服務(wù) 面向服務(wù)的基礎(chǔ) 面向服務(wù)的三層:應(yīng)用層,服務(wù)層,數(shù)據(jù)層 * 應(yīng)用層:用于給用戶展示,PC,H5,IOS,安卓。 * 服務(wù)層:業(yè)務(wù)邏輯,提供接口(商品,訂單,支付,用戶,物流)。 * 數(shù)據(jù)層:提供數(shù)據(jù)支持(...

    songze 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<