php 3des加密解密类程序代码
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
代码如下 | 复制代码 |
function encrypt($input){ function decrypt($encrypted){ function pkcs5_pad ($text, $blocksize) { function pkcs5_unpad($text){ function PaddingPKCS7($data) { 用法: $crypt = new Crypt3Des('密钥'); |
一个入门级别的例子
代码如下 | 复制代码 |
$k = $_REQUEST['k']; $k = addslashes($k);//转义:单引号,双引号,反斜线,NULL $k = str_replace('%', '\%', $k); $k = str_replace('_', '\_', $k); $sql = "select * from users where name like '%$k%'"; if(!empty($k)){ $res = mysql_query($sql, $con) or die(mysql_error()); if($row = mysql_fetch_assoc($res)){ foreach($row as $k=>$v){ echo $row[$k].':'.$row[$v].'<br />'; } } }else{ echo '******'; } |
补充
mysql_real_escape_string()
所以得SQL语句如果有类似这样的写法:
"select * from cdr where src =".$userId; 都要改成 $userId=mysql_real_escape_string($userId)
例子
代码如下 | 复制代码 |
<?php |
所有有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss,注意中文要写出
代码如下 | 复制代码 |
htmlentities($name,ENT_NOQUOTES,GB2312) 。 |
例子,使用strip_tags()函数过滤所有html
代码如下 | 复制代码 |
$str = '<a href="#">href</a>'; 输出结果为 <a href="#">href</a> href |
上面函数有一个问题就是包括html标签,img标签都过滤掉了,如果我们希望保留图片怎么办
在网上找到一个函数
代码如下 | 复制代码 |
function uh($str) |
这样就可以过滤指定标签了,上面方法还不会我们可参考下面办法
代码如下 | 复制代码 |
<br>$str=preg_replace("/\s+/", " ", $str); //过滤多余回车 <br>$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格) <br><br>$str=preg_replace("/<\!--.*?-->/si","",$str); //注释 <br>$str=preg_replace("/<(\!.*?)>/si","",$str); //过滤DOCTYPE <br>$str=preg_replace("/<(\/?html.*?)>/si","",$str); //过滤html标签 <br>$str=preg_replace("/<(\/?head.*?)>/si","",$str); //过滤head标签 <br>$str=preg_replace("/<(\/?meta.*?)>/si","",$str); //过滤meta标签 <br>$str=preg_replace("/<(\/?body.*?)>/si","",$str); //过滤body标签 <br>$str=preg_replace("/<(\/?link.*?)>/si","",$str); //过滤link标签 <br>$str=preg_replace("/<(\/?form.*?)>/si","",$str); //过滤form标签 <br>$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签 <br><br>$str=preg_replace("/<(applet.*?)>(.*?)<(\/applet.*?)>/si","",$str); //过滤applet标签 <br>$str=preg_replace("/<(\/?applet.*?)>/si","",$str); //过滤applet标签 <br><br>$str=preg_replace("/<(style.*?)>(.*?)<(\/style.*?)>/si","",$str); //过滤style标签 <br>$str=preg_replace("/<(\/?style.*?)>/si","",$str); //过滤style标签 <br><br>$str=preg_replace("/<(title.*?)>(.*?)<(\/title.*?)>/si","",$str); //过滤title标签 <br>$str=preg_replace("/<(\/?title.*?)>/si","",$str); //过滤title标签 <br><br>$str=preg_replace("/<(object.*?)>(.*?)<(\/object.*?)>/si","",$str); //过滤object标签 <br>$str=preg_replace("/<(\/?objec.*?)>/si","",$str); //过滤object标签 <br><br>$str=preg_replace("/<(noframes.*?)>(.*?)<(\/noframes.*?)>/si","",$str); //过滤noframes标签 <br>$str=preg_replace("/<(\/?noframes.*?)>/si","",$str); //过滤noframes标签 <br><br>$str=preg_replace("/<(i?frame.*?)>(.*?)<(\/i?frame.*?)>/si","",$str); //过滤frame标签 <br>$str=preg_replace("/<(\/?i?frame.*?)>/si","",$str); //过滤frame标签 <br><br>$str=preg_replace("/<(script.*?)>(.*?)<(\/script.*?)>/si","",$str); //过滤script标签 <br>$str=preg_replace("/<(\/?script.*?)>/si","",$str); //过滤script标签 <br>$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签 <br>$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签 <br>$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签 <br>$str=preg_replace("/&#/si","&#",$str); //过滤script标签,如javAsCript:alert( <br> |
如果只要过滤过滤html标签,js代码,css样式标签
代码如下 | 复制代码 |
|
这样即可了哦。
我了解中的php加密与解密方法有很多的,有常用的encrypt与DES加密解密算法了,下面我就给大家整理这两种算法的加密函数例子。例子,php加密解密的例子
代码如下 | 复制代码 |
加密函数
解密代码如下: /* 辅助函数: /* 使用如下所示 $str='作者:www.111cn.net'; echo '原文:',$str."<br><hr>"; |
DES加密解密函数
代码如下 | 复制代码 |
<?php 以下是测试结果: $str = '12345678'; $key = '1234abcd'; echo $str.' <=> '.$mstr; |
例子2
代码如下 | 复制代码 |
|
下载:http://www.rrpowered.com/code/RRPowered-NudityFilter.zip
我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片的类文件.
它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.
作为分析的结果,他会返回一个反映图片包含xx露的可能性的分值.
此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.
当前它可以对PNG,GIF和JPEG图片进行分析.
PHP
下面展示了如何使用这个PHP类.
让我们先从包含过滤器,nf.php文件开始.
代码如下 | 复制代码 |
include('nf.php'); |
接下来,创建一个新的名叫ImageFilter的类,然后把它放到一个叫做$filter的变量中.
代码如下 | 复制代码 |
$filter = new ImageFilter; |
获取图片的分值并将其放到一个$score变量中.
代码如下 | 复制代码 |
|
如果图片分值大于或等于60%,那就展示一条(告警)消息.
代码如下 | 复制代码 |
if($score >= 60){ |
下面是所有的PHP代码:
代码如下 | 复制代码 |
<?php /*Include the Nudity Filter file*/ include ('nf.php'); /*Create a new class called $filter*/ $filter = new ImageFilter; /*Get the score of the image*/ $score = $filter -> GetScore($_FILES['img']['tmp_name']); /*If the $score variable is set*/ if (isset($score)) { /*If the image contains nudity, display image score and message. Score value if more than 60%, it is considered an adult image.*/ if ($score >= 60) { echo "Image scored " . $score . "%, It seems that you have uploaded a nude picture."; /*If the image doesn't contain nudity*/ } else if ($score < 0) { echo "Congratulations, you have uploaded an non-nude image."; } } ?> |
标记语言
我们可以使用一个基础的HTML表单上传图片.
代码如下 | 复制代码 |
<form method="post" enctype="multipart/form-data" action="<?php echo $SERVER['PHP_SELF'];?> "> |
总结
请记得,PHP不能够检测所有的图片,所以不完全可信.我希望你觉得这还有点用处.
相关文章
- 有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
- 这篇文章主要介绍了vue接口请求加密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
- 关于AES加密的算法我们就不说了,这里主要给各位演示了三个关于AES算法实现的加密例子,希望本文章能给你带来帮助。 话不多说,先放上代码,一共有两个文件:AES.php(aes算...2016-11-25
- 这次文章要给大家介绍的是node.JS md5加密中文与php结果不一致怎么办,不知道具体解决办法的下面跟小编一起来看看。 因项目需要,需要Node.js与PHP做接口调用,发现nod...2017-07-06
- 分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
- 下面来给大家分享两个关于php威盾解密的例子,一个是批量解密一个是超级算法的解密都非常的好,大家有举的进入参考。 例子,批量解密 代码如下 复制代码 ...2016-11-25
- 使用require('crypto')调用加密模块。加密模块需要底层系统提供OpenSSL的支持。它提供了一种安全凭证的封装方式,可以用于HTTPS安全网络以及普通HTTP连接。该模块还提供了一套针对OpenSSL的hash(哈希),hmac(密钥哈希),cipher...2014-06-07
- 对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
- 这篇文章主要介绍了C# 获取硬盘号,CPU信息,加密解密技术的步骤,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了C#实现对文件进行加密解密的方法,涉及C#加密与解密的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 若a=b ^ c;则b=a ^ c (^是异或的意思),php在处理异或的字符时先把字符转化为二进制的ascii值,对这些值进行异或,获取结果后在将ascii值转化为字符...2013-09-26
- 复制代码 代码如下:<?php/***功能:对字符串进行加密处理*参数一:需要加密的内容*参数二:密钥*/function passport_encrypt($str,$key){ //加密函数srand((double)microtime() * 1000000);$encrypt_key=md5(rand(0, 32000...2014-06-07
- 这篇文章主要介绍了go语言使用RC4加密的方法,实例分析了RC4加密的技巧与实现方法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-07
- 这篇文章主要介绍了C#为配置文件加密的实现方法,可实现对配置文件中的敏感信息进行加密,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了微信小程序 MD5加密登录密码详解及实例代码的相关资料,这里附有实例代码,需要的朋友可以参考下...2017-01-16
- 这篇文章主要介绍了md5加密,加密结果可以为32位、48位、64位,只要修改一下参数就可以实现...2020-06-25
- 本文给大家汇总介绍了几种C#编写的Base64加密和解密类的代码,从简单到复杂,都能够实现功能,有需要的小伙伴根据自己的项目需求参考下吧。...2020-06-25
- 这篇文章主要介绍了C# 实现对PPT文档加密、解密及重置密码的操作方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Android+Java使用RSA加密实现接口调用时的校验功能,帮助大家更好的利用Android进行开发,感兴趣的朋友可以了解下...2020-12-24
- 这篇文章主要介绍了C#实现的MD5加密功能与用法,结合实例形式分析了C# MD5加密类的定义与使用方法,需要的朋友可以参考下...2020-06-25