最新消息:欢迎加入小松的QQ群一起讨论一起学习,搜索页面修改成lua+ElasticSearch,使用php这个页面速度相对慢一点,优化之后速度杠杠的,如有问题请加群联系我

又一个php加密和解密的方法

PHP 507浏览 0评论

php加密和解密的方法

之前的文章
php openssl加密解密方法
今天又看到一个加密和解密的方法,记录一下

<?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;
}
$data = '小松博客网站www.phpsong.com';  // 被加密信息
$data=iconv("gbk","utf-8",$data);
$key = 'www.phpsong.com';     // 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "<br/>", $decrypt;

小松测试过,没有有问题,感觉这个方法比之前分享的更加高深,加密和解密的原理我都没有看到

QQ交流群:136351212(满) 455721967

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» 又一个php加密和解密的方法
本文链接地址:https://www.phpsong.com/2463.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!

网友最新评论 (4)

加载中,请稍候...
  1. 定义一个数组,采用随机的数值,然后采取多个然后再进行加密在进行随机选取加密,这种的加密方法也可以吧
    憧憬Licoy2016-06-07 21:38:58回复
    • 如果可以发个代码给我看看,看了你的留言不是很明白你说的意思
      小松2016-06-08 08:48:36回复
      • function comi(){ $english = array(1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h', 'j','k','m','n','p','q','r','s','t','u','v','w','x','y','z'); @$rand=rand(1,61); @$rand2=rand(1,61); @$rand3=rand(1,61); @$rand4=rand(1,61); @$rand5=rand(1,61); @$str=$english[$rand].$english[$rand2].$english[$rand3].$english[$rand4].$english[$rand5]; @$strmd5=md5($str).md5($str); @$strmd5=md5($strmd5); echo md5($strmd5);}
        憧憬Licoy2016-06-08 12:46:30回复
        • 你md5了怎么反解
          小松2016-06-09 07:10:21