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 相关文章推荐
BBS(php &amp; mysql)完整版(四)
Oct 09 PHP
使用 MySQL 开始 PHP 会话
Dec 21 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
laravel通用化的CURD的实现
Dec 13 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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中的HashTable结构详解
2013/06/13 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python如何实现文本转语音
2016/08/08 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
python标准库OS模块详解
2020/03/10 Python
python实现扫雷小游戏
2020/04/24 Python
如何通过命令行进入python
2020/07/06 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
营销人才自我鉴定范文
2013/12/25 职场文书
转党组织关系介绍信
2014/01/08 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
全国文明单位申报材料
2014/05/31 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS