国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > PHP > 正文

2個比較經(jīng)典的PHP加密解密函數(shù)分享

2020-03-22 20:12:35
字體:
供稿:網(wǎng)友
  • 這篇文章主要介紹了2個比較經(jīng)典的PHP加密解密函數(shù)分享,一個是Discuz!的authcode加密函數(shù)(帶詳細分解),一個是encrypt()函數(shù),都比較經(jīng)典,需要的朋友可以參考下

    項目中有時我們需要使用PHP將特定的信息進行加密,也就是通過加密算法生成一個加密字符串,這個加密后的字符串可以通過解密算法進行解密,便于程序?qū)饷芎蟮男畔⑦M行處理。
    最常見的應(yīng)用在用戶登錄以及一些API數(shù)據(jù)交換的場景。

    筆者收錄了一些比較經(jīng)典的PHP加密解密函數(shù)代碼,分享給大家。加密解密原理一般都是通過一定的加密解密算法,將密鑰加入到算法中,最終得到加密解密結(jié)果。
    1、非常給力的authcode加密函數(shù),Discuz!經(jīng)典代碼(帶詳解):

    function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {       // 動態(tài)密匙長度,相同的明文會生成不同密文就是依靠動態(tài)密匙       $ckey_length = 4;              // 密匙       $key = md5($key ? $key : $GLOBALS['discuz_auth_key']);              // 密匙a會參與加解密       $keya = md5(substr($key, 0, 16));       // 密匙b會用來做數(shù)據(jù)完整性驗證       $keyb = md5(substr($key, 16, 16));       // 密匙c用于變化生成的密文       $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';       // 參與運算的密匙       $cryptkey = $keya.md5($keya.$keyc);       $key_length = strlen($cryptkey);       // 明文,前10位用來保存時間戳,解密時驗證數(shù)據(jù)有效性,10到26位用來保存$keyb(密匙b), //解密時會通過這個密匙驗證數(shù)據(jù)完整性       // 如果是解碼的話,會從第$ckey_length位開始,因為密文前$ckey_length位保存 動態(tài)密匙,以保證解密正確       $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) :  sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;       $string_length = strlen($string);       $result = '';       $box = range(0, 255);       $rndkey = array();       // 產(chǎn)生密匙簿       for($i = 0; $i <= 255; $i++) {           $rndkey[$i] = ord($cryptkey[$i % $key_length]);       }       // 用固定的算法,打亂密匙簿,增加隨機性,好像很復(fù)雜,實際上對并不會增加密文的強度       for($j = $i = 0; $i < 256; $i++) {           $j = ($j + $box[$i] + $rndkey[$i]) % 256;           $tmp = $box[$i];           $box[$i] = $box[$j];           $box[$j] = $tmp;       }       // 核心加解密部分       for($a = $j = $i = 0; $i < $string_length; $i++) {           $a = ($a + 1) % 256;           $j = ($j + $box[$a]) % 256;           $tmp = $box[$a];           $box[$a] = $box[$j];           $box[$j] = $tmp;           // 從密匙簿得出密匙進行異或,再轉(zhuǎn)成字符           $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));       }       if($operation == 'DECODE') {          // 驗證數(shù)據(jù)有效性,請看未加密明文的格式           if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) &&  substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {               return substr($result, 26);           } else {               return '';           }       } else {           // 把動態(tài)密匙保存在密文里,這也是為什么同樣的明文,生產(chǎn)不同密文后能解密的原因           // 因為加密后的密文可能是一些特殊字符,復(fù)制過程可能會丟失,所以用base64編碼           return $keyc.str_replace('=', '', base64_encode($result));       }   } 

    函數(shù)authcode($string, $operation, $key, $expiry)中的$string:字符串,明文或密文;$operation:DECODE表示解密,其它表示加密;$key:密匙;$expiry:密文有效期。

    用法:

    $str = 'abcdef';$key = 'www.helloweba.com';echo authcode($str,'ENCODE',$key,0); //加密$str = '56f4yER1DI2WTzWMqsfPpS9hwyoJnFP2MpC8SOhRrxO7BOk';echo authcode($str,'DECODE',$key,0); //解密

    2、加解密函數(shù)encrypt():

    <?phpfunction encrypt($string,$operation,$key=''){     $key=md5($key);     $key_length=strlen($key);       $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;     $string_length=strlen($string);     $rndkey=$box=array();     $result='';     for($i=0;$i<=255;$i++){            $rndkey[$i]=ord($key[$i%$key_length]);         $box[$i]=$i;     }     for($j=$i=0;$i<256;$i++){         $j=($j+$box[$i]+$rndkey[$i])%256;         $tmp=$box[$i];         $box[$i]=$box[$j];         $box[$j]=$tmp;     }     for($a=$j=$i=0;$i<$string_length;$i++){         $a=($a+1)%256;         $j=($j+$box[$a])%256;         $tmp=$box[$a];         $box[$a]=$box[$j];         $box[$j]=$tmp;         $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));     }     if($operation=='D'){         if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){             return substr($result,8);         }else{             return'';         }     }else{         return str_replace('=','',base64_encode($result));     } } ?>

    函數(shù)encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判斷是加密還是解密,E表示加密,D表示解密;$key:密匙。
    用法:

    $str = 'abc';$key = 'www.helloweba.com';$token = encrypt($str, 'E', $key);echo '加密:'.encrypt($str, 'E', $key);echo '解密:'.encrypt($str, 'D', $key); 

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
    亚洲www色| 国产精品一区二区婷婷| 超碰在线网站| www在线观看播放免费视频日本| 在线天堂中文www视软件| 国产三级在线观看| 伊人影院在线观看| 国产美女在线免费观看| 国产99在线|亚洲| 热99re久久精品精品免费| 国产乱xxⅹxx国语对白| 综合蜜桃精品| 天天插天天狠天天透| 中文字幕在线免费观看| 精品久久亚洲一级α| 欧美日韩在线视频免费观看 | 性欧美精品xxxx| 欧美aaa一级片| 国产黄色av免费看| 超碰免费在线播放| 精品美女在线观看视频在线观看| 天天插天天操| 国产经典av| 国产毛片毛片| 麻豆福利在线观看| 国产99在线|亚洲| 国产在线传媒| 日本成人a视频| 97高清视频| 国产三级视频在线| 国产真实伦在线观看| 国产三级av在线| 国内自拍视频在线观看| av在线免费播放| 69久久精品| 在线中文字幕资源| 9999在线视频| ·天天天天操| 国产成人精品综合网站| 国产精品视频流白浆免费视频 | 日韩在线天堂| 99在线欧洲视频| 国产一级片网站| **三级三级97片毛片| 中文字幕在线免费| 最新天堂资源在线资源| 福利在线国产| 国产区高清在线| 国产福利av网站| 中文资源在线官网| 亚洲国产日韩成人综合天堂| 精品一区二区在线欧美| av网站在线播放| 免费视频中文字幕| 国精一区二区三区| 国产视频精品久久| 国产成人无吗| 永久免费av网站| 麻豆精品免费视频入口| 午夜视频在线免费| 国产传媒在线播放| а√最新版地址在线天堂| 二区中文字幕| 精品国内一区二区三区免费视频| 伊人永久在线| 国产在线看片| 在线视频观看国产| 五月婷婷在线观看| 性网站在线看| 国产三级在线| 国产中文在线视频| 中文岛国精品亚洲一区| 青草在线视频在线观看| 高潮毛片在线观看| 99热99re6国产在线播放| 国产麻豆综合视频在线观看| 中文乱码字幕高清在线观看| 丁香花高清在线观看完整版| 精品偷拍激情视频在线观看| 成人av小说网| www.av在线| 中文天堂av| 国产欧美日韩专区| 非洲黑人最猛性xxxx交| 日本国产在线| 午夜在线不卡| 在线观看中文字幕| 国产精品视频福利一区二区| 成年人在线观看| 欧美韩日国产| 亚洲国产成人综合| 中文资源在线网| 国产人成在线观看| 天天操天天曰| 开心婷婷激情五月| 九七电影韩国女主播在线观看| 在线黄色av| 在线观看免费视频一区二区三区| 国产三级在线免费观看| 国产精品偷乱一区二区三区 | 国产福利免费在线观看| 狠狠操五月天| 丁香视频五月| 午夜在线小视频| 国产美女福利在线观看| 国产在线看片| 国产在线传媒| 91超碰在线免费| 国产午夜视频在线观看| 国产日产一区二区| 中文av在线播放| 亚洲www色| 久久一本精品| 国产精品你懂的在线观看| 国产精品冒白浆免费视频| 中文字幕日本在线观看| 最近中文字幕av免费高清| 国产一级片麻豆| 96久久久久久| 久久国产精品黑丝| 国产色在线播放| 在线伊人免费视频| 开心激情五月婷婷| 国产无套粉嫩白浆在线2022年 | a视频免费看| www.夜夜操| 国产农村一级特黄α**毛片 | 国产蜜臀在线| 国产成人精品男人的天堂538| 在线视频xx| 久草.com| 一本免费视频| 国产偷倩在线播放| 亚洲人成电影| 中文字幕在线视频不卡| 在线看黄网址| 国产欧美日韩精品综合| 黄网站在线观看高清免费| 国产精品视频二区三区| а√资源新版在线天堂| 中文字幕在线资源| 久久精品无码一区二区日韩av | 国产精品被窝福利一区| www网站在线观看| 国产对白在线| 1区2区视频| 超碰在线97国产| 国产精品jvid在线观看| 丁香综合五月| 九九热在线观看视频| 日本在线观看网站| 在线视频中文字幕第一页| 国产一卡2卡3卡四卡网站| 久草视频国产| 欧美韩日国产| 人成在线免费视频| 天天干天天摸| jizz性欧美| 日本高清中文字幕二区在线| av大片在线| av手机免费在线观看| a√在线视频| 精品一区二区三区免费站| 国产午夜精品久久久久免费视| 丁香花视频在线观看| www.超级碰| 欧美日韩亚洲第一页| 超碰免费在线观看| 久热中文字幕在线观看| 热99re久久精品这里都是免费| 天天操夜夜添| 懂色av一区| 国产高清视频免费最新在线| 91资源在线观看| www网站在线观看| 好男人社区在线视频| 国产在线高清理伦片a| 免费av不卡在线观看| 1区2区视频| 伊人中文字幕在线| 激情视频国产| 在线视频色在线| 成人免费一区二区三区视频网站| 国产一级黄色| 亚洲精品自拍区在线观看| 国产在线观看av| 国产不卡在线| a级片国产精品自在拍在线播放| 欧美性受xxxx免费视频| 国产农村av| 一级二级在线观看| 国产乱视频在线观看| 国产人成精品| 欧美日韩久久中文字幕| 国产高清视频在线播放| 激情丁香婷婷| 在线观看的网站你懂的| 国产视频中文字幕在线观看| www.三级.com| 在线中文字幕视频观看|