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 文件上传进度条的两种实现方法的代码
Nov 25 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
php绘图中显示不出图片的原因及解决
Mar 05 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
linux中cd命令使用详解
Jan 08 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
PHP基于array_unique实现二维数组去重
Jul 14 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实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
对PHP语言认识上需要避免的10大误区
2014/06/12 PHP
Chrome Web App开发小结
2014/09/04 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
2019/01/19 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python学习入门之区块链详解
2017/07/25 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
python实现超市扫码仪计费
2018/05/30 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
python+opencv实现车道线检测
2021/02/19 Python
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
《春晓》教学反思
2014/04/20 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
欢迎横幅标语
2014/06/17 职场文书
迎国庆演讲稿
2014/09/15 职场文书
会计师事务所实习证明
2014/11/16 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
小学生手册家长意见
2015/06/03 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
百万英镑观后感
2015/06/09 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Go并发4种方法简明讲解
2022/04/06 Golang
分享python函数常见关键字
2022/04/26 Python