可以逆转的加密类,没有密钥很难破解

[PHP]代码

<?class encryptCalss
{
var $key=12;
function encode($txt){
for($i=0;$i<strlen($txt);$i++){
$txt[$i]=chr(ord($txt[$i])+$this->key);
}
return $txt=urlencode(base64_encode(urlencode($txt)));
}
function decode($txt){
$txt=urldecode(base64_decode($txt));
for($i=0;$i<strlen($txt);$i++){
$txt[$i]=chr(ord($txt[$i])-$this->key);
}
return $txt;
}
}?>

discuz加密解密

<?php
/*** * @param string $string 原文或者密文* @param string $operation 操作(ENCODE | DECODE), 默认为 DECODE* @param string $key 密钥* @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效* @return string 处理后的 原文或者 经过 base64_encode 处理后的密文* @example *   $a = authcode('abc', 'ENCODE', 'key');*   $b = authcode($a, 'DECODE', 'key');  // $b(abc)* *   $a = authcode('abc', 'ENCODE', 'key', 3600);*   $b = authcode('abc', 'DECODE', 'key'); // 在一个小时内,$b(abc),否则 $b 为空*/
function authcode($string,$operation='DECODE',$key='',$expiry=0){$ckey_length=4;$key=md5($key ? $key:"kalvin.cn");$keya=md5(substr($key,0,16));$keyb=md5(substr($key,16,16));$keyc=$ckey_length ? ($operation=='DECODE' ? substr($string,0,$ckey_length):substr(md5(microtime()),-$ckey_length)):'';$cryptkey=$keya.md5($keya.$keyc);$key_length=strlen($cryptkey);$string=$operation=='DECODE' ? base64_decode(substr($string,$ckey_length)):sprintf('%010d',$expiry ? $expiry+time():0).substr(md5($string.$keyb),0,16).$string;$string_length=strlen($string);$result='';$box=range(0,255);$rndkey=array();for($i=0;$i<=255;$i++){$rndkey[$i]=ord($cryptkey[$i%$key_length]);}for($j=$i=0;$i<256;$i++){$j=($j+$box[$i]+$rndkey[$i])%256;$tmp=$box[$i];$box[$i]=$box[$j];$box[$j]=$tmp;}for($a=$j=$i=0;$i<$string_length;$i++){$a=($a+1)%256;$j=($j+$box[$a])%256;$tmp=$box[$a];$box[$a]=$box[$j];$box[$j]=$tmp;$result.=chr(ord($string[$i]) ^ ($box[($box[$a]+$box[$j])%256]));}if($operation=='DECODE'){if((substr($result,0,10)==0||substr($result,0,10)-time()>0)&&substr($result,10,16)==substr(md5(substr($result,26).$keyb),0,16)){returnsubstr($result,26);}else{return'';}}else{return$keyc.str_replace('=','',base64_encode($result));}}
?>

转载于:https://www.cnblogs.com/ghjbk/p/7519830.html

php 可逆加密方法相关推荐

  1. 可逆加密算法 php,php可逆加密的方法及原理

    本篇文章主要介绍php可逆加密的方法及原理,感兴趣的朋友参考下,希望对大家有所帮助. PHP代码如下:<?php class encryptCalss { var $key=12; functi ...

  2. 网站数据库中“密码加密”方法思考

    博主,开始时候,写的web应用,数据库中的密码,都是直接保存的.真正的原汁原味,真正的所见即所得. 后来,看了别人的web应用都是MD5加密的,感觉很不错,自己也在应用中加入了MD5加密,貌似&quo ...

  3. mceliece加密算法c语言,一种安全轻量的McEliece公钥掩码加密方法技术

    本发明专利技术公开了一种安全轻量的McEliece公钥掩码加密方法,属于信息安全技术领域.该方法的设计分为两部分,即构造密钥体积小的Quasi‑Dyadic MDPC码McEliece密码算法和设计抗 ...

  4. 可逆加密和不可逆加密

    加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密. 一.不可逆加密 常见的不可逆加密算法有MD5,HMAC,SHA1.SHA-224.SHA-256.SHA-3 ...

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

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

  6. 开发Linux系统下的磁盘加密方法详解

    随着智能手机的计算能力和存储能力的提高,手机中将会存放越来越多的私有数据,这些数据的泄密可能造成严重后果.手机信息安全一直是我们的重点之一,对于一些重要的功能我们要求鉴权后才能使用,但这只能挡住初级的 ...

  7. 光盘压制:八种加密方法保护光盘数据安全

    为了防止盗版软件对软件市场的侵害,越来越多的软件商使用加密方法来保护自己的软件.尽管目前加密光盘的方法有很多种,但其主要原理是利用特殊的光盘母盘上的某些特征信息是不可再现的,而且这些特征信息大多是光盘 ...

  8. 移动硬盘加密方法赏析

    大家都知道,移动硬盘如果丢失,里面的数据对于其他用户来说完全是可自由读写的.如果你是商务或者销售,那可能会给公司利益造成严重损失.如果你是工程师,那你的劳动成果,比如文档.方案.代码就会泄漏.如果万一 ...

  9. mysql5.7 skip ssl_MySQL 5.7 的SSL加密方法

    MySQL 5.7 的SSL加密方法 MySQL 5.7.6或以上版本 (1)创建证书开启SSL验证 --安装openssl yum install -y openssl openssl versio ...

  10. openstack havana块存储Cinder磁盘加密方法研究

    http://blog.csdn.net/cloudresearch/article/details/19092219 在openstack havana的release note中有如下介绍&quo ...

最新文章

  1. sqlserver Distributed Transaction 分布式事务
  2. python代码编辑器-世界上最好的Python编辑器是什么?
  3. HD_I Hate It
  4. 电脑技巧:键盘上的这几个键,不常用,但有必要了解一下!
  5. pat 乙级 1003 我要通过!(C++)
  6. 3.5. Ticket
  7. python threading-单线程 多线程 主线程 子线程 setDeamon join
  8. k8s核心技术-Helm(自定义chart部署)---K8S_Google工作笔记0047
  9. css的类选择器#和id选择器.
  10. 一点感想——还没学会跑,怎么能够想着飞
  11. Flutter进阶—实现动画效果(三)
  12. php下xcache的安装
  13. summernote富文本编辑器配合validate表单验证无法进行表单提交的问题
  14. 吴恩达机器学习视频笔记记录(第2、5、7、8章)
  15. 黑苹果之微星(MSI)主板BIOS详细设置篇
  16. T100服务端接口开发步骤
  17. 23个平台短视频去水印解析下载接口
  18. 灵魂碎片的收集(构造)
  19. Double 保留至小数点后两位
  20. 【并发编程一:走进并发编程】

热门文章

  1. Illustrator 教程,如何在 Illustrator 中使用铅笔工具绘图?
  2. 苹果mac专业的图像后期处理软件:Lightroom Classic
  3. 苹果mac窗口速调辅助工具:Magnet
  4. OA系统中的HRM的发展和存在的误区,值得每一个HR学习
  5. Python全栈学习_day010作业
  6. thrift编写服务端 客户端
  7. 2016年不容错过的十五大智能家居产品
  8. 《iOS 6核心开发手册(第4版)》——1.13节秘诀:从滚动视图中拖动
  9. Adb connect监听指定的主机和端口/Adb监听Visual Studio Emulator for Android模拟器
  10. 教你如何用双SATA硬盘组建RAID系统