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

一組PHP可逆加密解密算法實例代碼

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

對于大部分密碼加密,我們可以采用md5、sha1等方法??梢杂行Х乐箶祿孤?,但是這些方法僅適用于無需還原的數據加密。

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

下面一組PHP函數是實現此加密解密的方法:

加密算法如下:

復制代碼 代碼如下:

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);
}

解密算法如下:
復制代碼 代碼如下:

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;
}

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

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

上述將輸出類似如下結果:

gniCSOzZG+HnS9zcFea7SefNGhXF
PHP加密解密算法

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

相關文章

  • 如何讓CI框架支持service層

    如何讓CI框架支持service層

    本文主要介紹了在controller和model中加一個業(yè)務層service,由它來負責業(yè)務邏輯,封裝好的調用接口可以被controller復用,提高了通用的業(yè)務邏輯的復用性,設計到具體業(yè)務實現會調用Model的接口。
    2014-10-10
  • 微信公眾號支付之坑:調用支付jsapi缺少參數 timeStamp等錯誤解決方法

    微信公眾號支付之坑:調用支付jsapi缺少參數 timeStamp等錯誤解決方法

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

    PHP的openssl加密擴展使用小結(推薦)

    下面小編就為大家?guī)硪黄狿HP的openssl加密擴展使用小結(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Laravel 5.4前后臺分離,通過不同的二級域名訪問方法

    Laravel 5.4前后臺分離,通過不同的二級域名訪問方法

    今天小編就為大家分享一篇Laravel 5.4前后臺分離,通過不同的二級域名訪問方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Yii調試SQL的常用方法

    Yii調試SQL的常用方法

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

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

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

    php-fpm服務啟動腳本的方法

    這篇文章主要介紹了php-fpm服務啟動腳本的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • PHP laravel中的多對多關系實例詳解

    PHP laravel中的多對多關系實例詳解

    數據表之間是縱橫交叉、相互關聯的,laravel的一對一,一對多比較好理解,本文重點通過實例給大家講解 laravel中的多對多關系,感興趣的朋友一起看看吧
    2017-06-06
  • thinkphp判斷訪客為手機端或PC端的方法

    thinkphp判斷訪客為手機端或PC端的方法

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

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

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

最新評論

上蔡县| 南丹县| 城固县| 绵竹市| 宜宾市| 田林县| 赣榆县| 托克托县| 遂平县| 高安市| 莒南县| 濉溪县| 新化县| 莒南县| 新源县| 景宁| 华蓥市| 芜湖县| 正安县| 清河县| 陇西县| 宁津县| 保山市| 布尔津县| 渭南市| 房山区| 山东省| 武强县| 库伦旗| 绥化市| 涟源市| 沂源县| 鄂州市| 长宁县| 遂川县| 鄱阳县| 门源| 东乡族自治县| 梁平县| 德兴市| 子长县|