在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 網(wǎng)頁(yè)設(shè)計(jì)教程 > 詳細(xì)頁(yè)面

php3種常用的加密解密算法(介紹)

php3種常用的加密解密算法(介紹)

更新時(shí)間:2025-12-04 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立...
網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語(yǔ)言之所以稱為超文本標(biāo)記語(yǔ)言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。
本文給大家介紹php的三種常用的加密解密算法,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你們有所幫助。

方法一:

/**
 * @param $string    要加密/解密的字符串
 * @param string $operation   類型,ENCODE 加密;DECODE 解密
 * @param string $key    密匙
 * @param int $expiry    有效期
 * @return string
 */
function authcode($string, $operation = 'DECODE', $key = 'encrypt', $expiry = 0)
{
    // 動(dòng)態(tài)密匙長(zhǎng)度,相同的明文會(huì)生成不同密文就是依靠動(dòng)態(tài)密匙
    $ckey_length = 4;
    // 密匙
    $key = md5($key ? $key : $GLOBALS['discuz_auth_key']);
    // 密匙a會(huì)參與加解密
    $keya = md5(substr($key, 0, 16));
    // 密匙b會(huì)用來(lái)做數(shù)據(jù)完整性驗(yàn)證
    $keyb = md5(substr($key, 16, 16));
    // 密匙c用于變化生成的密文
    $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) :
        substr(md5(microtime()), -$ckey_length)) : '';
    // 參與運(yùn)算的密匙
    $cryptkey = $keya . md5($keya . $keyc);
    $key_length = strlen($cryptkey);
    // 明文,前10位用來(lái)保存時(shí)間戳,解密時(shí)驗(yàn)證數(shù)據(jù)有效性,10到26位用來(lái)保存$keyb(密匙b),
    //解密時(shí)會(huì)通過(guò)這個(gè)密匙驗(yàn)證數(shù)據(jù)完整性
    // 如果是解碼的話,會(huì)從第$ckey_length位開(kāi)始,因?yàn)槊芪那?ckey_length位保存 動(dòng)態(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]);
    }
    // 用固定的算法,打亂密匙簿,增加隨機(jī)性,好像很復(fù)雜,實(shí)際上對(duì)并不會(huì)增加密文的強(qiáng)度
    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;
        // 從密匙簿得出密匙進(jìn)行異或,再轉(zhuǎn)成字符
        $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
    }
    if ($operation == 'DECODE') {
        // 驗(yàn)證數(shù)據(jù)有效性,請(qǐng)看未加密明文的格式
        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 {
        // 把動(dòng)態(tài)密匙保存在密文里,這也是為什么同樣的明文,生產(chǎn)不同密文后能解密的原因
        // 因?yàn)榧用芎蟮拿芪目赡苁且恍┨厥庾址,?fù)制過(guò)程可能會(huì)丟失,所以用base64編碼
        return $keyc . str_replace('=', '', base64_encode($result));
    }
}

使用:

$string = '加密字符串';
// 加密
$encode = authcode($string, 'ENCODE');
echo $encode . '</br>';       // a2f4bSYyUrTum1nAAA9X9BrC4Z3DZazcSa4eLcvDoCnmYc1LTdvtqS4aCds
// 解密
$decode = authcode($encode, 'DECODE');
echo $decode;     // 加密字符串

方法二:

/**
 * @param $string    要加密/解密的字符串
 * @param $operation    類型,E 加密;D 解密
 * @param string $key   密鑰
 * @return mixed|string
 */
function encrypt($string, $operation, $key = 'encrypt')
{
    $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));
    }
}

使用:

$string = '加密字符串';
// 加密
$encode = encrypt($string, 'E');
echo $encode . '</br>';       // 0Jzym5UzkRKH726U7Pyt7ixzLz9YEEA
// 解密
$decode = encrypt($encode, 'D');
echo $decode;     // 加密字符串

方法三:

/**
 * @param $data  要加密的字符串
 * @param $key   密鑰
 * @return string
 */
function encrypt($data, $key = 'encrypt')
{
    $key = md5($key);
    $x = 0;
    $len = strlen($data);
    $l = strlen($key);
    $char = '';
    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) {
            $x = 0;
        }
        $char .= $key{$x};
        $x++;
    }
    $str = '';
    for ($i = 0; $i < $len; $i++) {
        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}


/**
 * @param $data    要解密的字符串
 * @param $key     密鑰
 * @return string
 */
function decrypt($data, $key = 'encrypt')
{
    $key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    $char = '';
    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) {
            $x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    $str = '';
    for ($i = 0; $i < $len; $i++) {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) {
            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        } else {
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}

使用:

$string = '加密字符串';
// 加密
$encode = encrypt($string);
echo $encode . '</br>';       // Gr0DHeHrRw7KGBLcSOzj
// 解密
$decode = decrypt($encode);
echo $decode;     // 加密字符串

總結(jié):以上就是本篇文的全部?jī)?nèi)容,希望能對(duì)大家的學(xué)習(xí)有所幫助。更多相關(guān)教程請(qǐng)?jiān)L問(wèn)php編程從入門(mén)到精通全套視頻教程

相關(guān)推薦:

php公益培訓(xùn)視頻教程

以上就是php三種常用的加密解密算法(介紹)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 蜜臀av免费观看| 亚洲 激情 在线| www成人免费| 国产农村妇女精品久久| 17c国产在线| www.51色.com| 日本成人xxx| 亚洲区成人777777精品| www.久久久久久久久久久| 在线观看免费污视频| 在线观看免费成人av| 国产xxxxx在线观看| 欧美日韩亚洲第一| 国产一区二区在线视频播放| 日本久久久网站| 国产婷婷一区二区三区| 男人用嘴添女人下身免费视频| 99热都是精品| 777久久久精品一区二区三区| 久久久久人妻精品一区三寸| 最近免费中文字幕中文高清百度| 成人性做爰aaa片免费看不忠| www.99在线| 欧美a级免费视频| 欧美日韩国产精品激情在线播放| 丁香婷婷激情网| 女人床在线观看| 黄色片久久久久| 中文字幕55页| 成人免费在线小视频| 国产精品久久久毛片| 欧美成人精品免费| 久久久久久香蕉| 成人免费a级片| 久热精品在线观看视频| 免费看国产一级片| 免费精品99久久国产综合精品应用| 一级黄色录像免费看| 2018日日夜夜| 老司机久久精品| 黄色一级片在线看| 性欧美18一19内谢| 国产深夜男女无套内射| 亚洲va在线va天堂va偷拍| 无码人妻少妇伦在线电影| 午夜激情av在线| 久久精品免费一区二区| www.久久com| 成人一级片网站| 潘金莲一级淫片aaaaa免费看| 欧洲黄色一级视频| 国内少妇毛片视频| 三级性生活视频| 精品视频无码一区二区三区| 日韩美女爱爱视频| 久久99国产精品一区| 久久99999| 黄色片视频在线播放| 免费网站在线观看视频 | 久久久久久久久久毛片| 国产淫片免费看| 成熟丰满熟妇高潮xxxxx视频| 美女黄色片网站| 国产美女视频免费| 日韩欧美中文视频| 欧美 另类 交| 强开小嫩苞一区二区三区网站| www.久久av.com| 一级片黄色免费| 久久人人爽人人片| 中文字幕精品在线播放| 强开小嫩苞一区二区三区网站 | 国产精品v日韩精品v在线观看| 国产主播在线看| 亚洲熟妇av日韩熟妇在线| 免费人成自慰网站| 精品无码国产一区二区三区av| 国产肉体ⅹxxx137大胆| 久在线观看视频| 国产一区二区三区精彩视频| 欧美黄网站在线观看| 日韩精品你懂的| 超碰在线超碰在线| 欧美视频在线观看视频| 久热免费在线观看| 日本网站在线看| 国产成人永久免费视频| 欧美a v在线播放| 日本中文字幕影院| 欧美中日韩在线| 日本免费观看网站| 色哺乳xxxxhd奶水米仓惠香| 国产中文字幕乱人伦在线观看| 97在线免费公开视频| 91看片破解版| 国产素人在线观看| 国产一级特黄a大片免费| 九一免费在线观看| 黑鬼大战白妞高潮喷白浆| 国内精品国产三级国产aⅴ久| 成人一区二区av| 国产又大又黄又粗又爽| 亚洲av首页在线| 视频在线观看免费高清| 免费在线观看亚洲视频| 国产高清精品软男同| 99re在线视频免费观看| 午夜免费福利网站| 簧片在线免费看| 国产成人永久免费视频| 国内av免费观看| 中文字幕欧美人妻精品一区| 黄色网址在线免费看| www.xxx亚洲| 欧美 激情 在线| 国产自产在线视频| 六月婷婷激情网| 五月天婷婷影视| 啊啊啊国产视频| 欧美日韩性生活片| 国产自产在线视频| www.亚洲成人网| av动漫在线播放| 熟妇熟女乱妇乱女网站| 青青草原国产在线视频| 国产偷人视频免费| 欧美一级在线看| 日本在线观看a| 成人网站免费观看入口| 日韩a级在线观看| 青草青青在线视频| 777av视频| 丰满爆乳一区二区三区| 成人性生活视频免费看| 日韩精品一区在线视频| 青青草成人免费在线视频| 怡红院av亚洲一区二区三区h| 国产二区视频在线| 国模无码视频一区二区三区| 少妇高潮喷水在线观看| 成年人视频在线免费| 老司机午夜av| 无需播放器的av| 午夜大片在线观看| 妞干网这里只有精品| 99热这里只有精品免费| av在线播放亚洲| 精品久久久久久无码国产| 永久免费的av网站| 国产三级中文字幕| 久久国产精品网| www.日日操| 国产又大又长又粗又黄| 香港三级日本三级a视频| 女人和拘做爰正片视频| 欧美一级xxxx| 免费特级黄色片| 日本美女高潮视频| 亚洲国产一二三精品无码 | aa在线免费观看| 狠狠干狠狠操视频| 黄色一级片av| 久久人妻精品白浆国产| 亚洲国产欧美91| 激情网站五月天| 激情图片qvod| 亚洲xxxx2d动漫1| 久艹在线免费观看| 国产精品区在线| 青青草原av在线播放| 久久av喷吹av高潮av| 国产超碰在线播放| 国产真实老熟女无套内射| 国产3p在线播放| 无码aⅴ精品一区二区三区浪潮| 一区二区三区欧美精品| 波多野结衣家庭教师在线播放| 午夜啪啪小视频| 日本久久精品一区二区| 日本福利视频一区| 成年丰满熟妇午夜免费视频| 成人亚洲精品777777大片| 国产精品又粗又长| 午夜啪啪免费视频| 污片在线免费看| 久久午夜夜伦鲁鲁一区二区| 日本手机在线视频| 色婷婷777777仙踪林| 亚洲 欧洲 日韩| 在线观看亚洲色图| 日本三区在线观看| 久久久久久久久久久福利| 日韩一级片免费视频| 欧美日韩dvd| 大地资源网在线观看免费官网| 中文字幕在线视频精品| 亚洲一区二区偷拍| 天堂在线一区二区三区| 午夜xxxxx| 性久久久久久久久久久久久久|