网站地图    收藏   

主页 > php专栏 > php函数大全 >

PHP带密钥的加密解密函数 - php函数

来源:自学PHP网    时间:2014-11-25 00:26 作者: 阅读:

[导读] 在一些开发中,我们使用curl等进行通信,如果你的一些隐私数据不进行加密,就可能造成信息泄露,带来不必要的麻烦,我们提供一个带密钥的加密解密函数,只要你的密钥不泄露,就可能很好的...

PHP带密钥的加密解密函数

在一些开发中,我们使用curl等进行通信,如果你的一些隐私数据不进行加密,就可能造成信息泄露,带来不必要的麻烦,我们提供一个带密钥的加密解密函数,只要你的密钥不泄露,就可能很好的保护你的传输.

PHP带密钥的加密解密函数代码如下:

  1. function encrypt($data$key)  
  2. {  
  3.     $key    =   md5($key);  
  4.     $x      =   0;  
  5.     $len    =   strlen($data);  
  6.     $l      =   strlen($key);  
  7.     for ($i = 0; $i < $len$i++)  
  8.     {  
  9.         if ($x == $l)   
  10.         {  
  11.             $x = 0;  
  12.         }  
  13.         $char .= $key{$x};  
  14.         $x++;  
  15.     }  
  16.     for ($i = 0; $i < $len$i++)  
  17.     {  
  18.         $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);  
  19.     }  
  20.     return base64_encode($str);  
  21.  
  22. function decrypt($data$key)  
  23. {  
  24.     $key = md5($key);  
  25.     $x = 0;  
  26.     $data = base64_decode($data);  
  27.     $len = strlen($data);  
  28.     $l = strlen($key);  
  29.     for ($i = 0; $i < $len$i++)  
  30.     {  
  31.         if ($x == $l)   
  32.         {  
  33.             $x = 0;  
  34.         }  
  35.         $char .= substr($key$x, 1);  
  36.         $x++;  
  37.     }  
  38.     for ($i = 0; $i < $len$i++)  
  39.     {  
  40.         if (ord(substr($data$i, 1)) < ord(substr($char$i, 1)))  
  41.         {  
  42.             $str .= chr((ord(substr($data$i, 1)) + 256) - ord(substr($char$i, 1)));  
  43.         }  
  44.         else  
  45.         {  
  46.             $str .= chr(ord(substr($data$i, 1)) - ord(substr($char$i, 1)));  
  47.         }  
  48.     } //开源代码phpfensi.com 
  49.     return $str;  

上面的两个函数,一个是加密函数,一个是解密函数,encrypt($data, $key) 为加密函数,其中$data是要加密的内容,$key是你的密钥,decrypt($data, $key) 是解密函数,其中$data是要解密的字符串,$key是密钥.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论