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和XSS跨站攻击的防范
Apr 17 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php将session放入memcached的设置方法
Feb 14 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
利用php-cli和任务计划实现订单同步功能的方法
May 03 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 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 和 MySQL 基础教程(四)
2006/10/09 PHP
php a simple smtp class
2007/11/26 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
Paypal支付不完全指北
2020/06/04 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
Python CSV模块使用实例
2015/04/09 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
python常用函数与用法示例
2019/07/02 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
django框架auth模块用法实例详解
2019/12/10 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
python关于倒排列的知识点总结
2020/10/13 Python
二年级体育教学反思
2014/01/15 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
Python 全局空间和局部空间
2022/04/06 Python