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 相关文章推荐
我的论坛源代码(二)
Oct 09 PHP
自动分页的不完整解决方案
Jan 12 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
php中的strpos使用示例
Feb 27 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
PHP浮点比较大小的方法
Feb 14 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
php PDO实现的事务回滚示例
Mar 23 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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迭代器的内部执行过程详解
2013/11/12 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python调用命令行进度条的方法
2015/05/05 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
武汉瑞得软件笔试题
2015/10/27 面试题
专科毕业生求职简历的自我评价
2013/10/12 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
学校个人对照检查材料
2014/08/26 职场文书
政风行风评议工作总结
2014/10/21 职场文书
员工离职感谢信
2015/01/22 职场文书
故宫的导游词
2015/01/31 职场文书
毕业证明模板
2015/06/19 职场文书
大学学生会竞选稿
2015/11/19 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL