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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
PHP+MySQL 制作简单的留言本
Nov 02 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
php命名空间学习详解
Feb 27 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
非常实用的php验证码类
May 15 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
PHPStrom 新建FTP项目以及在线操作教程
Oct 16 PHP
10个值得深思的PHP面试题
Nov 14 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 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语法速查表
2007/01/02 PHP
Zend Guard一些常见问题解答
2008/09/11 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
input 高级限制级用法
2009/03/26 Javascript
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python 运算符 供重载参考
2009/06/11 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
python之拟合的实现
2019/07/19 Python
Python reduce函数作用及实例解析
2020/05/08 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
Python基于execjs运行js过程解析
2020/11/27 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
行政办公员自我评价分享
2013/12/14 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
验房委托书
2014/08/30 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
庆七一主持词
2015/06/29 职场文书
详解Python函数print用法
2021/06/18 Python
Golang 实现WebSockets
2022/04/24 Golang