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 相关文章推荐
域名查询代码公布
Oct 09 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP可逆加密/解密函数分享
Sep 25 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 PHP
thinkphp自带验证码全面解析
Sep 18 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
常用简易JavaScript函数
2009/04/09 Javascript
YUI的Tab切换实现代码
2010/04/11 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
Python中__name__的使用实例
2015/04/14 Python
python Django模板的使用方法
2016/01/14 Python
import的本质解析
2017/10/30 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
Python 如何查找特定类型文件
2020/08/17 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
商务日语毕业生自荐信
2013/11/23 职场文书
法律顾问服务方案
2014/05/15 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
nginx服务器的下载安装与使用详解
2021/08/02 Servers