php自定义加密与解密程序实例


Posted in PHP onDecember 31, 2014

本文实例讲述了php自定义加密与解密程序。分享给大家供大家参考。具体分析如下:

PHP3 Cryption是一个非常容易被破解,不安全的加密功能,不应该是非常重要的东西用,虽然加密是好的,它不会阻碍对尖端开裂程序的严格考验.

不过,试试吧...这是一个伟大的方式来加密和解密字符串。与许多隐窝功能,这是双向的。基于一个密码,您可以加密或解密。您也可以解密或加密过无数次,通过循环或其他方法。字母表中的字符也是变化的。所有这些事情让你修改和巩固加密。

关于这最佳的部分?您可以加密与解密或一张纸和一支铅笔一块。这需要相当长一点,但你并不需要一台电脑是附近使用它,如果你曾经失去的代码,如果你还记得你的技术可以解密。

我写在约一小时这些功能,经过几次不成功的和令人沮丧的尝试,并获得了更长的时间我没有出路的。成功的那天后的最佳方式做它突然实现。

请注意,这不会加密/解密无形字符(空格),如换行符(n)或标签(吨)!很抱歉,但我尝试,如果你找到一个办法,请让我知道!

$ralphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !,.:;?~@#$%^&*()_+-=][}{/><"'";  

$alphabet = $ralphabet . $ralphabet; 

 

class Crypto { 

 

function encrypt ($password,$strtoencrypt) { 

 

global $ralphabet;  

global $alphabet; 

 

for( $i=0; $i<strlen($password); $i++ )  

{  

$cur_pswd_ltr = substr($password,$i,1);  

$pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet));  

} 

 

$i=0;  

$n = 0;  

$nn = strlen($password);  

$c = strlen($strtoencrypt); 

 

while($i<$c)  

{  

$encrypted_string .= substr($pos_alpha_ary[$n],strpos($ralphabet,substr($strtoencrypt,$i,1)),1); 

 

$n++;  

if($n==$nn) $n = 0;  

$i++;  

} 

 

return $encrypted_string; 

 

} 

 

function decrypt ($password,$strtodecrypt) { 

 

global $ralphabet;  

global $alphabet; 

 

for( $i=0; $i<strlen($password); $i++ )  

{  

$cur_pswd_ltr = substr($password,$i,1);  

$pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet));  

} 

 

$i=0;  

$n = 0;  

$nn = strlen($password);  

$c = strlen($strtodecrypt); 

 

while($i<$c)  

{  

$decrypted_string .= substr($ralphabet,strpos($pos_alpha_ary[$n],substr($strtodecrypt,$i,1)),1); 

 

$n++;  

if($n==$nn) $n = 0;  

$i++;  

} 

 

return $decrypted_string; 

 

} 

 

function cryption_table ($password) { 

 

global $ralphabet;  

global $alphabet; 

 

for( $i=0; $i<strlen($password); $i++ )  

{  

$cur_pswd_ltr = substr($password,$i,1);  

$pos_alpha_ary[] = substr(strstr($alphabet,$cur_pswd_ltr),0,strlen($ralphabet));  

} 

 

print "<table border=1 cellpadding="0" cellspacing="0">n"; 

 

print "<tr><td></td>";  

for( $j=0; $j<strlen($ralphabet); $j++ )  

{  

print "<td align="center"><font size="2" face="arial">" . substr($ralphabet,$j,1) . "</td>n";  

}  

print "</tr>"; 

 

 

for( $i=0; $i<count($pos_alpha_ary); $i++ )  

{  

print "<tr><td align="right"><font size="2"><b>" . ($i+1) . "|</b></font></td>";  

for( $k=0; $k<strlen($pos_alpha_ary[$i]); $k++ )  

{  

print "<td align="center"><font size="2" face="arial">" . substr($pos_alpha_ary[$i],$k,1) . "</td>n";  

}  

print "</tr>";  

} 

 

print "</table>n"; 

 

} 

 

} // end class Crypto 

 

// Example written by Macro Zeng  

$ct = new Crypto;  

//$ct->cryption_table($password);  

echo "<form action=$PHP_SELF method=post>";  

if ($mod == 2) {  

$strtodecrypt = $ct->encrypt ($password,$strtoencrypt);  

echo 'Encrypted String(加密后的字段): ';  

echo "<input type=text name=strtodecrypt size=45 value=$strtodecrypt>";  

echo "密码锁: <input type=text name=password size=6 value=$password>";  

echo "<input type=submit value="Decrypt(解密)">";  

}  

else {  

$strtoencrypt = $ct->decrypt ($password,$strtodecrypt);  

echo 'String to Encrypt(需要加密的字段): ';  

echo "<input type=text name=strtoencrypt size=45 value=$strtoencrypt>";  

echo "密码锁: <input type=text name=password size=6 value=$password>";  

echo "<input type=submit value="Encrypt(加密)">";  

echo "<input type=hidden name=mod value=2>";  

}  

echo "</form>";
highlight_file("crypto.php");

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
加强版phplib的DB类
Mar 31 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
php如何比较两个浮点数是否相等详解
Feb 12 PHP
php引用和拷贝的区别知识点总结
Sep 23 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 #PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 #PHP
php使用google地图应用实例
Dec 31 #PHP
php将文本文件转换csv输出的方法
Dec 31 #PHP
19个Android常用工具类汇总
Dec 30 #PHP
php+ajax实现文章自动保存的方法
Dec 30 #PHP
php实现监控varnish缓存服务器的状态
Dec 30 #PHP
You might like
php adodb介绍
2009/03/19 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
javascript判断office版本示例
2014/04/11 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
从零学Python之hello world
2014/05/21 Python
python实现查询苹果手机维修进度
2015/03/16 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
python实现统计代码行数的小工具
2019/09/19 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
餐厅总厨求职信
2014/03/04 职场文书
课程改革实施方案
2014/03/16 职场文书
三爱活动实施方案
2014/03/19 职场文书
反腐倡廉标语
2014/06/24 职场文书
个人债务授权委托书
2014/10/17 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
交通事故协议书范本
2016/03/19 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python