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

php加密算法之實(shí)現(xiàn)可逆加密算法和解密分享

 更新時(shí)間:2014年01月21日 13:38:43   作者:  
對(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é)果:

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

gniCSOzZG+HnS9zcFea7SefNGhXF
PHP加密解密算法

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

相關(guān)文章

  • Laravel 集成 Geetest驗(yàn)證碼的方法

    Laravel 集成 Geetest驗(yàn)證碼的方法

    這篇文章主要介紹了Laravel 集成 Geetest驗(yàn)證碼的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • php實(shí)現(xiàn)購(gòu)物車產(chǎn)品刪除功能(2)

    php實(shí)現(xiàn)購(gòu)物車產(chǎn)品刪除功能(2)

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)購(gòu)物車產(chǎn)品刪除功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • php獲取目錄所有文件并將結(jié)果保存到數(shù)組(實(shí)例)

    php獲取目錄所有文件并將結(jié)果保存到數(shù)組(實(shí)例)

    php讀取目錄文件在平時(shí)的開(kāi)發(fā)中還是經(jīng)常要用到的,這里寫(xiě)個(gè)小例子學(xué)習(xí)一下如何用PHP把目錄下文件列出來(lái)。
    2013-10-10
  • 為百度UE編輯器上傳圖片添加水印功能

    為百度UE編輯器上傳圖片添加水印功能

    前些日子把phpcms的內(nèi)置編輯器改成了百度UE編輯器,非常好用,但是有個(gè)地方不是很滿意,就是沒(méi)法給上傳的圖片加水印了,經(jīng)過(guò)一番研究終于實(shí)現(xiàn)了出來(lái),分享給大家。
    2015-04-04
  • Swoole源碼中如何查詢Websocket的連接問(wèn)題詳解

    Swoole源碼中如何查詢Websocket的連接問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于Swoole源碼中如何查詢Websocket的連接問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • thinkphp文件處理類Dir.class.php的用法分析

    thinkphp文件處理類Dir.class.php的用法分析

    這篇文章主要介紹了thinkphp文件處理類Dir.class.php的用法,以實(shí)例形式分析了基于文件處理類Dir.class.php的自定義函數(shù)del的使用,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • php文件上傳及下載附帶顯示文件及目錄功能

    php文件上傳及下載附帶顯示文件及目錄功能

    這篇文章主要介紹了php文件上傳及下載附帶顯示文件及目錄功能,需要的朋友可以參考下
    2017-04-04
  • laravel清除視圖緩存的代碼

    laravel清除視圖緩存的代碼

    今天小編就為大家分享一篇laravel清除視圖緩存的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • YII框架模塊化處理操作示例

    YII框架模塊化處理操作示例

    這篇文章主要介紹了YII框架模塊化處理操作,結(jié)合實(shí)例形式分析了Yii框架模塊化操作實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • Yii框架引入coreseek分頁(yè)功能示例

    Yii框架引入coreseek分頁(yè)功能示例

    這篇文章主要介紹了Yii框架引入coreseek分頁(yè)功能,結(jié)合實(shí)例形式分析了Yii框架結(jié)合coreseek搜索進(jìn)行分頁(yè)的相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02

最新評(píng)論

西充县| 亳州市| 武安市| 南阳市| 仲巴县| 秀山| 衢州市| 贺州市| 青海省| 宽城| 新乐市| 阿巴嘎旗| 南通市| 清河县| 和田县| 临沧市| 永胜县| 安义县| 洛宁县| 滨海县| 广灵县| 双鸭山市| 大丰市| 德令哈市| 华蓥市| 淮北市| 晋中市| 兴宁市| 赣榆县| 兴业县| 长子县| 巨野县| 昔阳县| 绥芬河市| 宁强县| 西乌珠穆沁旗| 临海市| 浦县| 通河县| 宁津县| 门头沟区|