这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 结合 md5 的加密解密算法, 结合实例形式分析了 php 结合 md5 实现自定义密钥的加密解密算法相关实现技巧, 需要的朋友可以参考下
本文实例讲述了 php 结合 md5 的加密解密算法。分享给大家供大家参考,具体如下:
- <?php
- /*
- * Created on 2016-9-30
- *
- */
- 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 = 'PHPERZwww.phperz.com'; // 被加密信息
- $data=iconv("gbk","utf-8",$data);
- $key = 'www.phperz.com'; // 密钥
- $encrypt = encrypt($data, $key);
- $decrypt = decrypt($encrypt, $key);
- echo $encrypt, "<br/>", $decrypt;
- ?>
运行结果如下:
- TrXMTM8SFB3DGhTr2qeuYqOXZmpmn8mo
- PHPERZwww.phperz.com
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
希望本文所述对大家 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0803/342314.html