php中文加密解密算法,一组PHP可逆加密解密算法
对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。
对于需要还原的信息,则需要采用可逆的加密解密算法。
下面一组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;
}
上述加密解密的过程均需要用到一个加密密钥(即参数$key)。
$data = 'PHP加密解密算法';// 被加密信息
$key = '123';// 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "\n", $decrypt;
上述将输出类似如下结果:
gniCSOzZG+HnS9zcFea7SefNGhXF
PHP加密解密算法
从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php中文加密解密算法,一组PHP可逆加密解密算法相关推荐
- python对数字进行简单的可逆加密_Python实现简单的可逆加密程序实例
本文实例讲述了Python实现简单的可逆加密程序.分享给大家供大家参考.具体如下: Python代码如下: 代码如下: #coding=utf-8 ''''' Description: 可逆的加密与解 ...
- 一组PHP可逆加密解密算法
对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密. 对于需要还原的信息,则需要采用可逆的加密解密算法. 下面一组PHP函数是实现此加 ...
- python加密程序_Python 简单的可逆加密程序
简单加密 1.[代码][Python]代码 #coding=utf-8 ''''' Description: 可逆的加密与解密 Environment: python2.5.x Author:ideh ...
- php可逆加密函数,简洁的PHP可逆加密函数
// 加密数据并写到cookie里 $cookie_data = $this -> encrypt("nowamagic", $data); $cookie = array( ...
- 简易可逆加密解密算法
分享一个简单的可逆加密解密算法 1.基本原理 (1)使用base64_encode和base64_decode函数作为可逆的加密和解密工作函数 (2)把base64_encode出来的字符串通过某种方 ...
- 可逆与不可逆算法,对称加密与非对称加密算法总结
文章目录 1. 加密算法的种类 2. 不可逆加密算法 ①:MD5 ②:HMAC系列 ③:SHA系列 3. 可逆加密算法 1. 对称加密 ①:DES ②:3DES ③:AES 2. 非对称加密 ①:RS ...
- Base64 混淆加密+迭代次数,Base64前后端加解密不一致、Base64 js加解密结果与java加解密结果不一致,Base64中文加密乱码
Table of Contents 概述 一.js加密,java解密 1.js加密 1.中文字符串加密 2.英文等字符串加密 3.中文字符串混淆.迭代加密 4.英文等字符串混淆.迭代加密 5.JSON ...
- 哈希算法(hash)加密解密
一.哈希算法(hash)加密解密介绍 哈希,英文叫做 hash. 哈希函数(hash function)可以把 任意长度的数据(字节串)计算出一个为固定长度的结果数据. 我们习惯把 要计算 的数据称之 ...
- C#的加密解密算法,包括Silverlight的MD5算法
C#的加密解密算法,包括Silverlight的MD5算法 下面是一段加密解密工具类,其中的WinFormMD5Encrypt方法可以使得Winform和WebForm下的MD5加密结果一致,默认他们 ...
最新文章
- 利用FFmpeg生成视频缩略图 2.1.8
- win10 更新pip
- 5.4 SVM的使用建议-机器学习笔记-斯坦福吴恩达教授
- “adb不是内部或外部命令,也不是可运行的程序或批量文件“
- SAP中国研究院再次荣获年度中国最佳雇主,国际友人纷纷发来贺电
- 【渝粤题库】陕西师范大学200991教育统计学作业(高起本)
- big sur darwin6.iso下载_苹果macOS Big Sur 11.0 正式版系统适配机型 附升级教程和系统镜像下载...
- jquery ajax 对异步队列defer与XMLHttprequest.onload的依赖
- Windows、Linux、Mac OS下的锐捷认证的程序——mentohust
- win7下计算机假死,Win7系统电脑经常发生假死现象的五种情况及解决方法
- 自动回复串口工具AutoRespondComTool
- 【FPGA】 基于FPGA分频,倍频设计实现
- sticky你了解多少
- 理科生学酒店管理好一点还是计算机,酒店管理专业是文科还是理科
- 2022.04.17-高宝琪毕设阶段性汇报
- 企业官网中的“农家老宅”和“精品房”区别在哪?
- cdrx8如何批量导出jpg_CDR怎么批量导出图片
- 关于“.bash_profile”和“.bashrc”区别的总结
- ASP.Net请求处理机制初步探索之旅
- 洗碗机底板原理图绘制