您的位置:首页 > 编程语言 > PHP开发

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

2016-10-03 12:00 351 查看




之前的文章

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
查看原文:http://www.phpsong.com/2463.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: