最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一組PHP可逆加密解密算法實(shí)例代碼

 更新時(shí)間:2014年01月21日 18:00:44   作者:  
這篇文章主要介紹了一組PHP可逆加密解密算法實(shí)例代碼,有需要的朋友可以參考一下

對(duì)于大部分密碼加密,我們可以采用md5、sha1等方法??梢杂行Х乐箶?shù)據(jù)泄露,但是這些方法僅適用于無(wú)需還原的數(shù)據(jù)加密。

對(duì)于需要還原的信息,則需要采用可逆的加密解密算法。

下面一組PHP函數(shù)是實(shí)現(xiàn)此加密解密的方法:

加密算法如下:

復(fù)制代碼 代碼如下:

function encrypt($data, $key)
{
 $key = md5($key);
    $x  = 0;
    $len = strlen($data);
    $l  = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l)
        {
         $x = 0;
        }
        $char .= $key{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}

解密算法如下:
復(fù)制代碼 代碼如下:

function decrypt($data, $key)
{
 $key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l)
        {
         $x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    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;
}

上述加密解密的過(guò)程均需要用到一個(gè)加密密鑰(即參數(shù)$key)。
復(fù)制代碼 代碼如下:

$data = 'PHP加密解密算法';  // 被加密信息
$key = '123';     // 密鑰
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "\n", $decrypt;

上述將輸出類似如下結(jié)果:

gniCSOzZG+HnS9zcFea7SefNGhXF
PHP加密解密算法

從上述結(jié)果可以看出,這是一組可逆的加密解密算法,可以用于部分需要還原的數(shù)據(jù)加密。

相關(guān)文章

  • 如何讓CI框架支持service層

    如何讓CI框架支持service層

    本文主要介紹了在controller和model中加一個(gè)業(yè)務(wù)層service,由它來(lái)負(fù)責(zé)業(yè)務(wù)邏輯,封裝好的調(diào)用接口可以被controller復(fù)用,提高了通用的業(yè)務(wù)邏輯的復(fù)用性,設(shè)計(jì)到具體業(yè)務(wù)實(shí)現(xiàn)會(huì)調(diào)用Model的接口。
    2014-10-10
  • 微信公眾號(hào)支付之坑:調(diào)用支付jsapi缺少參數(shù) timeStamp等錯(cuò)誤解決方法

    微信公眾號(hào)支付之坑:調(diào)用支付jsapi缺少參數(shù) timeStamp等錯(cuò)誤解決方法

    這段時(shí)間一直比較忙,一忙起來(lái)真感覺(jué)自己就只是一臺(tái)掙錢(qián)的機(jī)器了(說(shuō)的好像能掙到多少錢(qián)似的,呵呵);這會(huì)難得有點(diǎn)兒空閑時(shí)間,想把前段時(shí)間開(kāi)發(fā)微信公眾號(hào)支付遇到問(wèn)題及解決方法跟大家分享下,這些“暗坑”能不掉就不掉吧,要不然關(guān)鍵時(shí)刻出問(wèn)題,真是讓人急的焦頭爛額
    2016-01-01
  • PHP的openssl加密擴(kuò)展使用小結(jié)(推薦)

    PHP的openssl加密擴(kuò)展使用小結(jié)(推薦)

    下面小編就為大家?guī)?lái)一篇PHP的openssl加密擴(kuò)展使用小結(jié)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • Laravel 5.4前后臺(tái)分離,通過(guò)不同的二級(jí)域名訪問(wèn)方法

    Laravel 5.4前后臺(tái)分離,通過(guò)不同的二級(jí)域名訪問(wèn)方法

    今天小編就為大家分享一篇Laravel 5.4前后臺(tái)分離,通過(guò)不同的二級(jí)域名訪問(wèn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • Yii調(diào)試SQL的常用方法

    Yii調(diào)試SQL的常用方法

    這篇文章主要介紹了Yii調(diào)試SQL的常用方法,需要的朋友可以參考下
    2014-07-07
  • 常用的php圖片處理類(水印、等比縮放、固定高寬)分享

    常用的php圖片處理類(水印、等比縮放、固定高寬)分享

    這篇文章主要匯總介紹了兩個(gè)常用的php圖片處理類(水印、等比縮放、固定高寬),非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2015-06-06
  • php-fpm服務(wù)啟動(dòng)腳本的方法

    php-fpm服務(wù)啟動(dòng)腳本的方法

    這篇文章主要介紹了php-fpm服務(wù)啟動(dòng)腳本的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • PHP laravel中的多對(duì)多關(guān)系實(shí)例詳解

    PHP laravel中的多對(duì)多關(guān)系實(shí)例詳解

    數(shù)據(jù)表之間是縱橫交叉、相互關(guān)聯(lián)的,laravel的一對(duì)一,一對(duì)多比較好理解,本文重點(diǎn)通過(guò)實(shí)例給大家講解 laravel中的多對(duì)多關(guān)系,感興趣的朋友一起看看吧
    2017-06-06
  • thinkphp判斷訪客為手機(jī)端或PC端的方法

    thinkphp判斷訪客為手機(jī)端或PC端的方法

    這篇文章主要介紹了thinkphp判斷訪客為手機(jī)端或PC端的方法,通過(guò)獲取用戶$_SERVER['HTTP_USER_AGENT']信息后,再針對(duì)數(shù)組的遍歷與匹配來(lái)判斷訪客類型,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • thinkphp5.1框架模板賦值與變量輸出示例

    thinkphp5.1框架模板賦值與變量輸出示例

    這篇文章主要介紹了thinkphp5.1框架模板賦值與變量輸出,結(jié)合實(shí)例形式分析了thinkphp5.1框架模板賦值與變量輸出基本操作技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論

长治市| 崇文区| 八宿县| 汝州市| 沐川县| 鄂州市| 理塘县| 上虞市| 罗源县| 栾川县| 班玛县| 南通市| 山西省| 宜宾县| 宁波市| 土默特右旗| 宜川县| 蒲江县| 玉屏| 新宁县| 磴口县| 班戈县| 慈利县| 奈曼旗| 嘉祥县| 三亚市| 东乡族自治县| 香河县| 连平县| 宁强县| 卓资县| 卢湾区| 拜城县| 霍山县| 自治县| 长丰县| 南溪县| 遵义县| 绥江县| 临漳县| 铜鼓县|