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

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

 更新時間:2014年01月21日 13:38:43   作者:  
對于大部分密碼加密,我們可以采用md5、sha1等方法。可以有效防止數(shù)據(jù)泄露,但是這些方法僅適用于無需還原的數(shù)據(jù)加密。對于需要還原的信息,則需要采用可逆的加密解密算法,下面一組PHP函數(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;
}

上述加密解密的過程均需要用到一個加密密鑰(即參數(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驗證碼的方法

    Laravel 集成 Geetest驗證碼的方法

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

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

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

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

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

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

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

    Swoole源碼中如何查詢Websocket的連接問題詳解

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

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

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

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

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

    laravel清除視圖緩存的代碼

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

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

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

    Yii框架引入coreseek分頁功能示例

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

最新評論

井冈山市| 松原市| 阿克苏市| 普洱| 平乐县| 光山县| 石屏县| 资中县| 左贡县| 西昌市| 常山县| 华阴市| 平利县| 安平县| 武宣县| 丹东市| 宜丰县| 哈巴河县| 军事| 南昌县| 嘉禾县| 北海市| 石城县| 武山县| 大安市| 盐山县| 南昌市| 丽水市| 定南县| 克东县| 松滋市| 石首市| 广西| 肥城市| 保德县| 周至县| 临沧市| 仙桃市| 湘乡市| 信宜市| 玉环县|