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 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
php判断GIF图片是否为动画的方法
Sep 04 PHP
php中socket通信机制实例详解
Jan 03 PHP
php+mysql查询优化简单实例
Jan 13 PHP
PHP SPL标准库之接口(Interface)详解
May 11 PHP
深入php内核之php in array
Nov 10 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
YII框架http缓存操作示例
Apr 29 PHP
浅析PHP中的 inet_pton 网络函数
Dec 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
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
微信API接口大全
2015/04/15 PHP
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
如何在python中实现随机选择
2019/11/02 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
Python如何读取、写入CSV数据
2020/07/28 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
老公爱的承诺书
2014/03/31 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
优秀语文教师事迹
2014/05/18 职场文书
党支部对照检查材料
2014/08/25 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
Python机器学习之基础概述
2021/05/19 Python