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 相关文章推荐
一个ftp类(ini.php)
Oct 09 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
php地址引用(php地址引用的效率问题)
Mar 23 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
php实现的递归提成方案实例
Nov 14 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
php和vue配合使用技巧和方法
May 09 PHP
php更新cookie内容的详细方法
Sep 30 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php实现分页显示
2015/11/03 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python实现用户管理系统
2018/01/10 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
python语言元素知识点详解
2019/05/15 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
关于python3中setup.py小概念解析
2019/08/22 Python
Python语言异常处理测试过程解析
2020/01/08 Python
心理健康课教学反思
2014/02/13 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
成绩单家长评语大全
2014/04/16 职场文书
大明湖导游词
2015/02/03 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书