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和ACCESS写聊天室(七)
Oct 09 PHP
dedecms系统常用术语汇总
Apr 03 PHP
php 从数据库提取二进制图片的处理代码
Sep 09 PHP
php实现telnet功能示例
Apr 08 PHP
PHP常用的缓存技术汇总
May 05 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
Webpack打包慢问题的完美解决方法
2017/03/16 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
python中对_init_的理解及实例解析
2019/10/11 Python
pymysql的简单封装代码实例
2020/01/08 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Python-split()函数实例用法讲解
2020/12/18 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
J2EE包括哪些技术
2016/11/25 面试题
干部培训自我鉴定
2014/01/22 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
英文道歉信
2015/01/20 职场文书
小学新教师个人总结
2015/02/05 职场文书
爱国主义电影观后感
2015/06/18 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL