对于大部分密码加密,我们可以采用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可逆加密解密算法相关推荐

  1. python对数字进行简单的可逆加密_Python实现简单的可逆加密程序实例

    本文实例讲述了Python实现简单的可逆加密程序.分享给大家供大家参考.具体如下: Python代码如下: 代码如下: #coding=utf-8 ''''' Description: 可逆的加密与解 ...

  2. 一组PHP可逆加密解密算法

    对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密. 对于需要还原的信息,则需要采用可逆的加密解密算法. 下面一组PHP函数是实现此加 ...

  3. python加密程序_Python 简单的可逆加密程序

    简单加密 1.[代码][Python]代码 #coding=utf-8 ''''' Description: 可逆的加密与解密 Environment: python2.5.x Author:ideh ...

  4. php可逆加密函数,简洁的PHP可逆加密函数

    // 加密数据并写到cookie里 $cookie_data = $this -> encrypt("nowamagic", $data); $cookie = array( ...

  5. 简易可逆加密解密算法

    分享一个简单的可逆加密解密算法 1.基本原理 (1)使用base64_encode和base64_decode函数作为可逆的加密和解密工作函数 (2)把base64_encode出来的字符串通过某种方 ...

  6. 可逆与不可逆算法,对称加密与非对称加密算法总结

    文章目录 1. 加密算法的种类 2. 不可逆加密算法 ①:MD5 ②:HMAC系列 ③:SHA系列 3. 可逆加密算法 1. 对称加密 ①:DES ②:3DES ③:AES 2. 非对称加密 ①:RS ...

  7. Base64 混淆加密+迭代次数,Base64前后端加解密不一致、Base64 js加解密结果与java加解密结果不一致,Base64中文加密乱码

    Table of Contents 概述 一.js加密,java解密 1.js加密 1.中文字符串加密 2.英文等字符串加密 3.中文字符串混淆.迭代加密 4.英文等字符串混淆.迭代加密 5.JSON ...

  8. 哈希算法(hash)加密解密

    一.哈希算法(hash)加密解密介绍 哈希,英文叫做 hash. 哈希函数(hash function)可以把 任意长度的数据(字节串)计算出一个为固定长度的结果数据. 我们习惯把 要计算 的数据称之 ...

  9. C#的加密解密算法,包括Silverlight的MD5算法

    C#的加密解密算法,包括Silverlight的MD5算法 下面是一段加密解密工具类,其中的WinFormMD5Encrypt方法可以使得Winform和WebForm下的MD5加密结果一致,默认他们 ...

最新文章

  1. 利用FFmpeg生成视频缩略图 2.1.8
  2. win10 更新pip
  3. 5.4 SVM的使用建议-机器学习笔记-斯坦福吴恩达教授
  4. “adb不是内部或外部命令,也不是可运行的程序或批量文件“
  5. SAP中国研究院再次荣获年度中国最佳雇主,国际友人纷纷发来贺电
  6. 【渝粤题库】陕西师范大学200991教育统计学作业(高起本)
  7. big sur darwin6.iso下载_苹果macOS Big Sur 11.0 正式版系统适配机型 附升级教程和系统镜像下载...
  8. jquery ajax 对异步队列defer与XMLHttprequest.onload的依赖
  9. Windows、Linux、Mac OS下的锐捷认证的程序——mentohust
  10. win7下计算机假死,Win7系统电脑经常发生假死现象的五种情况及解决方法
  11. 自动回复串口工具AutoRespondComTool
  12. 【FPGA】 基于FPGA分频,倍频设计实现
  13. sticky你了解多少
  14. 理科生学酒店管理好一点还是计算机,酒店管理专业是文科还是理科
  15. 2022.04.17-高宝琪毕设阶段性汇报
  16. 企业官网中的“农家老宅”和“精品房”区别在哪?
  17. cdrx8如何批量导出jpg_CDR怎么批量导出图片
  18. 关于“.bash_profile”和“.bashrc”区别的总结
  19. ASP.Net请求处理机制初步探索之旅
  20. 洗碗机底板原理图绘制

热门文章

  1. uCLinux简介--
  2. F#中有趣的计量单位
  3. 三代机户户通机顶盒改免维修指南
  4. Pandas数据分析库(2)Python数据分析
  5. 悲观锁、乐观锁以及分布式锁
  6. 悲观锁与乐观锁的区别 和 Redis中的watch
  7. 超详细Vue Devtools的下载和安装——Vue的调试工具
  8. pytorch 模型model 的一些常用属性和函数说明
  9. vue 项目中的打包配置
  10. Oracle EBS R12 创建会计科目失败诊断和处理