当前位置: 首页 > news >正文

Php公钥加密data是空,实用的PHP带公钥加密类分享(每次加密结果都不一样哦)

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 = 'https://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:

f92e55650aff1099de2fe647ee904531.png

结果2:

de74cdbe51c02ae98cca111d0948e365.png

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

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

相关文章:

  • java做节奏大师,《节奏大师》高手必修之路 亲测攻略_iOS游戏频道_97973手游网
  • 注册php tp5,thinkphp5 开发会员注册与登录功能
  • php xml序列化,深入理解:XML与对象的序列化与反序列化
  • matlab ceil,Matlab中的取整函数fix, floor, ceil与round
  • php 创建mssql 表,在php表中显示MSSQL选择数据
  • matlab 热图,基于表格数据创建热图
  • getlocation.php,关于微信小程序 location API接口的解析
  • php 调用未定义方法,关于php:Laravel调用未定义的方法create()和save()
  • eclipse java 源代码,ECLIPSE 调试java 源码
  • excel按条件查询mysql,excel多个表格满足条件的数据库-excel表格满足多条件的数据汇总(vlookup?)...
  • php多张图片制作成视频教程,PS如何将一张图片做成多张图片叠加效果
  • matlab查看hdf5数据,Matlab 操作 HDF5文件
  • 蓝桥杯java c组真题解析,蓝桥杯C语言C组校内赛题目解析
  • empty reply from server php,php curl连接返回:Empty reply from server
  • oracle掉电后ora 00600,oracle断电重启之ORA-00600[4194]
  • 2017-09-12 前端日报
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java到底能干嘛?
  • PAT A1120
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 闭包--闭包之tab栏切换(四)
  • 基于axios的vue插件,让http请求更简单
  • 前端面试之CSS3新特性
  • 使用 @font-face
  •  一套莫尔斯电报听写、翻译系统
  • 《天龙八部3D》Unity技术方案揭秘
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​queue --- 一个同步的队列类​
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.ajax()方法详解
  • ()、[]、{}、(())、[[]]命令替换
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (C++17) optional的使用
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (SpringBoot)第七章:SpringBoot日志文件
  • (分类)KNN算法- 参数调优
  • (转)一些感悟
  • [ C++ ] STL---仿函数与priority_queue
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [20140403]查询是否产生日志
  • [Android View] 可绘制形状 (Shape Xml)
  • [Angular 基础] - 表单:响应式表单
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [AX]AX2012 R2 出差申请和支出报告
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [c#基础]值类型和引用类型的Equals,==的区别
  • [ffmpeg] 定制滤波器
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [Hive] 常见函数
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式