WEB交互安全一直是个各大网站的首要解决方案,本文介绍的PHP加密类非常实用哦,带有公钥,这是最大的亮点,没有公钥是不能解密的,加密度非常高。

类代码:

/**

* PHP加密类

* 琼台博客

*/

class Jiami{

// 公钥

protected $key = ‘lee‘;

private function keyED($txt,$encrypt_key){

$encrypt_key = md5($encrypt_key);

$ctr=0;

$tmp = ‘‘;

for ($i=0;$i

if ($ctr==strlen($encrypt_key)){

$ctr=0;

}

$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);

$ctr++;

}

return $tmp;

}

public function encrypt($txt,$key=‘‘){

if(empty($key)){

$key=$this->key;

}

srand((double)microtime()*1000000);

$encrypt_key = md5(rand(0,32000));

$ctr=0;

$tmp = ‘‘;

for ($i=0;$i

if ($ctr==strlen($encrypt_key)){

$ctr=0;

}

$tmp.= substr($encrypt_key,$ctr,1).(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));

$ctr++;

}

return $this->keyED($tmp,$key);

}

public function decrypt($txt,$key=‘‘){

if(empty($key)){

$key=$this->key;

}

$txt = $this->keyED($txt,$key);

$tmp = ‘‘;

for ($i=0;$i

$md5 = substr($txt,$i,1);

$i++;

$tmp.= (substr($txt,$i,1) ^ $md5);

}

return $tmp;

}

public function setKey($key){

if(empty($key)){

return null;

}

$this->key=$key;

}

public function getPK(){

return $this->key;

}

}

使用方法:

// 先包含加密类

require_once(‘jiami.class.php‘);

// 要加密的字符串

$string = ‘http://www.jb51.net‘;

// 实例化加密类

$jiami= new Jiami();

// 设置公钥

$jiami->setKey(‘qttc‘);

// 加密字符串

$enc = $jiami->encrypt($string,$jiami->getPK());

// 解密字符串

$dec = $jiami->decrypt($enc,$jiami->getPK());

echo ‘‘;

echo ‘加密前 : ‘.$string .‘
‘;

echo ‘加密后 : ‘.$enc .‘
‘;

echo ‘解密后 : ‘.$dec;

?>

页面执行结果

结果1:

结果2:

由以上结果可以看到,每次加密产生的加密字符串都不一样,这是随机的。

解密的时候,需要使用加密时的公钥,否则无法解密。如你这边加密公钥使用‘qttc‘,解密的时候,也需要使用这个‘qttc‘作为公钥去解密,否则无法解密。

原文:http://www.jb51.net/article/54048.htm

php 每次加密结果都不一样,实用的PHP带公钥加密类分享(每次加密结果都不一样哦)...相关推荐

  1. 微信公众号运营都有哪些实用小技巧,你学会了吗

    移动媒体的发展,一些新媒体平台也变得热门起来,其原因人流量随之增长起来,像公众号.自媒体.短视频等,这些平台都是流量非常多的,公众号在微信刚出来的时候,还不怎么热门,也是近几年才受到企业受宠,很多企业 ...

  2. 机器学习实用代码汇总(你想要的这里都有)

    机器学习实用代码汇总(你想要的这里都有) 文章目录 机器学习实用代码汇总(你想要的这里都有) 前言 一.数据导入 1.数据文件读取 2.提取特征和标签 3.数据分布及关系图(ProfileReport ...

  3. 为什么每个请求都要有用户名密码呢,那不是每次都要查询一下了,token,表示这个用户已经验证通过了,在token有效期内,只需要判断token是否有效就可以了...

    为什么每个请求都要有用户名密码呢,那不是每次都要查询一下了,token,表示这个用户已经验证通过了,在token有效期内,只需要判断token是否有效就可以了 转载于:https://www.cnbl ...

  4. (11/∞)每日一练{1.将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求每一种小钞都要有,编程求出所有可能的换法总数输出并输出各换法的组合。}

    /*------------------------------------------------------- 将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求 ...

  5. poop手机计算机功能,OPPO手机超级实用的5个功能,一般人我都不告诉他

    原标题:OPPO手机超级实用的5个功能,一般人我都不告诉他 随着科技的发展,现在手机更新也是非常的快,当然现在手机功能也是非常的多,很多也是非常的智能化,如果你用对了那么就得心应手,如果用不好,那么操 ...

  6. php的图像处理有哪些实际作用,PHP_一个经典实用的PHP图像处理类分享,本图像处理类可以完成对图片 - phpStudy...

    一个经典实用的PHP图像处理类分享 本图像处理类可以完成对图片的缩放.加水印和裁剪的功能,支持多种图片类型的处理,缩放时进行优化等. /** file: image.class.php 类名为Imag ...

  7. 鸿蒙之境法有三乘,神都夜行录法有三乘副本组队通关攻略-神都夜行录法有三乘副本组队怎么过_牛游戏网...

    在<神都夜行录>这一次的更新当中,法有三乘也是新推出的副本,分为组队模式和单人模式,还是比较困难的,想要了解这次的副本组队通关攻略的玩家们,可千万别错过下面的这篇法有三乘副本组队通关攻略, ...

  8. android闹钟测评,谁才是轻便实用好闹钟Android闹钟类应用横评

    谁才是轻便实用好闹钟Android闹钟类应用横评 作者: CBINews编辑责任编辑:申耀 2012-03-09 18:45:19 来源:电脑商情在线关键字:点心OS 手机现在已经让很多人的手表藏进了 ...

  9. 上班族干什么副业挣钱?目前很好的3类副业,你都做过吗?

    大家好,今天给大家分享一个,利用下班时间操作短视频的赚钱项目,随着5g时代的来临,越来越多的人利用空闲时间,刷短视频. 可能有人就会问,我也不会拍的短视频,怎么靠短视频来赚钱?这就是我今天要分享的重点 ...

最新文章

  1. 渗透测试:正义黑客的渗透测试以及该过程和黑客活动的区别
  2. php 锁的使用场景,抢购秒杀的场景使用锁个人认为不太合理?
  3. java flex xml文件_Flex xml套接字到Java xml套接字
  4. 外链引入css有哪些方式_外链怎么发才会快速收录?
  5. java-io-FileReader和FileWriter类
  6. Spring AOP实现声明式事务代码分析
  7. 阿里P7程序员、资深架构师,竟不知jvm、红黑树!这都能进大厂?
  8. 基于MATLAB串级控制系统仿真设计,毕业论文基于MATLAB的锅炉水温与流量串级控制系统的设计9喜欢就下吧(样例3)...
  9. html表格中加入斜线,Html Table 表格 画斜线
  10. knx ets5安装
  11. 心理健康咨询问卷数据集
  12. 通达信公式-接近均线
  13. 黑马程序员_程序代码实现进制转换
  14. WinRAR 实现简单的自解压
  15. 微信实名认证在哪里?分享详细认证步骤
  16. 提高网络泛化能力,过拟合
  17. Ubuntu 出现这个提示“Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend.”?
  18. Postgresql源码(34)Btree索引读——_bt_first搜索部分分析
  19. Hololens开发二维码扫描和场景重置
  20. 一款android上的纸牌类小游戏

热门文章

  1. Android 中的“后台无效动画“行为分析
  2. 一个短线日内交易策略 ——R-Breaker
  3. JSOI2019 Round1(十二省联考)游记
  4. CCNA中文笔记第11章Wide Area Networking Protocols
  5. kafka中文文档(0.10.0)
  6. 产品原型-3.易用性 - 交互设计黄金7原则
  7. Ubuntu U盘启动工具Rufus制作(详细步骤)
  8. Distilling Object Detectors with Fine-grained Feature Imitation(2019 CVPR KD)
  9. (转载文章)程序员的常见健康问题
  10. teradata 查看 表定义_teradata查询所有表