PHP的加密主要有4种方法,除此之外还有一种是URL的加密和解密。希望可以对你们开发有用。

顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜那么麻烦了。

 笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2

 

一、md5()加密技术
语法:

  string md5(string $str[,bool $raw_output=false]):计算str的md5散列值

  $str:原始字符串

  $raw_output:如果可选的raw_output被设置为true,那么md5报文摘要将以16字节长度的原始二进制格式返回。返回以32位字符十六进制数字形式返回散列值。

注意:md5是不可逆的,所以只能强制解码。意思是加密了之后不可以通过其他函数进行解析出密码,只能通过第三方匹配数据库的32位字符解析出对应的原字符。

  解密网站:http://www.cmd5.com/

实例:

<?php
header("content-type:text/html;charset='utf8'"); //设置编码 echo md5("dfa");//1b014086a5cf92eb3238d0d45c8c61a4
echo "<br>";
echo md5("dfa",$raw_output=true); //输出: @��ϒ�28��\�a�5oWV6K++572RLWtpbg== $str=1;
echo md5(md5($str)); //可以进行多次加密
if($str){
echo "注册成功,3秒钟后跳转到登录页面";
echo "<meta http-equiv='refresh' content='3;url=login.html'/>"; //3秒后就刷新一次页面,然后跳转到login.html
}else{
echo "注册失败,请重新注册";
echo "<meta http-equiv='refresh' content='1;url=reg.html'/>";
}
?>

  

二、crypt加密算法
语法:
  string crypt(string $str[,string $salt]);
  返回一个基于标准UNIX DES算法或系统上其它可用的替代算法的散列字符串。
  $str:需要机密的明文
  $salt:加密时的干扰串,使编码更安全

注意:
如果加密时没有加上这个$salt参数,将随机生成一个干扰串,否则刷新加密密文不变。

实例:

<?php
echo crypt("imooc");
echo "<hr/>";
echo crypt("imooc",'cq');//可以在生成的32位UNIX文前加th两个字符
echo "<hr/>";
if(CRYPT_STD_DES){
echo "DES标准算法:".crypt("leohengchun","this is test");
}
echo "<hr/>";
if(CRYPT_MD5){
echo "MD5加密:".crypt("leohengchun",'$1$cdsaf$'); //一定要写成$1$...
}
echo "<hr/>";
if(CRYPT_MD5){
echo "MD5加密:".crypt("leochun",'$1$xshowsd dfds$');
}
?>

  

三、sha1()加密算法
语法:
  string sha1(string $str[,bool $raw_output=false]):计算字符串的sha1散列值
  $str:加密的字符串
  $raw_output:如果可选的raw_output参数被设置为TRUE,那么sha1摘要将以20字符长度的原始格式返回,否则返回值是一个40字符长度的十六进制数字。
  返回sha1散列值字符串。

实例:

<?php
echo sha1("leohc");
echo "<hr/>";
echo sha1("leohc",true); //加了ture 生成的是:n��7�_#B���[�BѰ�9j
echo "<hr/>"; echo sha1("admin");
echo "<hr/>";
echo sha1(md5("admin",true));
?>

  

四、URL编码加密技术
  1.urlencode(string $str):编码URL字符串
    $str:要编码的字符串
    返回值:返回编码后的字符串

  2.urldecode(string $str):解码已编码的URL字符串。
    $str:要解码的字符串
    返回值:返回解码后的字符串

  编码规范:此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)

  3.rawurlencode(string $str):按照RFC1738对URL进行编码
    $str:要编码的URL
    返回值:返回字符串,把空格编码为%20

  4.rawurldecode(string $str):对已编码的URL字符串进行解码
    $str:要解码的URL
    返回值:返回字符串,此字符串中百分号%后跟两位十六进制的序列都将被替换成原义字符

实例:

<?php
/*
原码 转换编码
? %3F
= %3D
空格 +
% %25
& %26
\ %5C
*/
$str="h e l lo world";
echo urlencode($str);
echo "<hr/>";
$str="urlencode.php?username=1+3%4&imooc&king#or1=1\ ";
echo urlencode($str);
echo "<hr/>";
$urlencode=urlencode($str);
echo urldecode($urlencode); //用来解码 echo "<hr/>";
if(!empty($_GET)){
print_r($_GET);
} echo '<a href="md5.php?username=imooc&king&age=2">hello</a>';
echo "<hr/>";
$username="imooc&king";
$queryString="username=".urlencode($username)."&age=2";
echo "<a href='md5.php?{$queryString}'>test</a>";
echo "<hr/>";
echo urldecode("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=site888_3_pg&wd=%E7%99%BE%E5%BA%A6%E4%BA%91&oq=crypt&rsv_pq=fac4a3dc0002be07&rsv_t=16d5wj9i3VPccyU6g9qIm86QNweuVYvCtNwPZ8u27y%2BEOCmwYlgt7irSlH5hePjE8Ug5&rsv_enter=1&rsv_sug3=10&rsv_sug1=3&rsv_sug7=100&sug=%E7%99%BE%E5%BA%A6%E4%BA%91&rsv_n=1&bs=crypt"); echo "<hr/>";
echo urlencode("墨客我"); //%E5%A2%A8%E5%AE%A2%E6%88%91
echo "<hr/>";
echo urlencode("this is a test");//this+is+a+test
echo "<hr/>";
echo rawurlencode("this is test");//this%20is%20test
echo "<hr/>";
echo rawurlencode("this%20is%20a%20test");//this%2520is%2520a%2520test
echo "<hr/>";
echo rawurldecode("this+is+a+test");//this+is+a+test
echo "<hr/>";
echo urldecode("this+is+a+test");//this is a test ?>

  

五、Base64信息编码加密技术
  1.base64_encode(string $data):使用base64对data进行编码
    $data:要编码的数据

  2.base64_decode(string $data[,bool $strict=false]):对使用MIME base64编码的数据进行解码

    $strict:如果输入的数据超出了base64字母表,则返回false;

实例:

<?php
$data="慕课网-kin";
echo base64_encode($data);
echo "<hr/>";
echo base64_decode("5oWV6K++572RLWtpbg==");
echo "<hr/>";
//图片的加密和转化
echo base64_encode("<img src='url.png'>");//加密
echo base64_decode("PGltZyBzcmM9J3VybC5wbmcnPg==");//解码 $filename="url.png";//加密
$data = file_get_contents($filename);
echo base64_encode($data);//加密 可以生成一串ascii码
echo "<img src='data:image/jpeg;base64,(图片base64代码)',alt=''>"; ?>

  

六、信息加密技术分类总结
信息加密:
  1.单项散列加密
    单项散列加密技术简介:
  单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算而获得输入信息。
  salt
    ↓
  明文----->单向散列算法--密文--->

  2.对称散列加密
  对称加密技术介绍:
  堆成加密时指加密和解密使用的密钥是同一个密钥或者可以互相推算。
  salt 密钥
    ↓ ↓
    明文----->加密算法--密文--->解密算法--明文-->

  3.非对称散列加密
  非对称加密和解密使用的密钥不是同一个密钥,其中一个对外公开,被称作公钥,另一个只有所有者知道。

  加密密钥 解密密钥
    ↓ ↓
    明文----->加密算法--密文--->解密算法--明文-->

希望在开发过程中有帮助。

附上笔记链接:http://pan.baidu.com/s/1qYdQdKK 密码:pvj2

琉忆个人博客网站:shuaiqi100.com

个人公众号:
  

PHP的加密方法汇总的更多相关文章

  1. 转发:C#加密方法汇总

    转自:C#加密方法汇总 方法一: //须添加对System.Web的引用 using System.Web.Security; ... /// <summary> /// SHA1加密字符 ...

  2. C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)

    using System;using System.Collections.Generic;using System.Text; namespace StringEncry{ class Encode ...

  3. php使用N层加密eval gzinflate str_rot13 base64 破解方法汇总

    php使用N层加密eval gzinflate str_rot13 base64 破解方法汇总 来源:本站转载 作者:佚名 时间:2011-02-14 TAG: 我要投稿 PHP使用eval(gzin ...

  4. C#.NET中对称和非对称加密、解密方法汇总--亲测可用

    C#.NET中对称和非对称加密.解密方法汇总--亲测可用   在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...

  5. ASP.NET(C#)常用数据加密和解密方法汇总

    一.            数据加密的概念 1.  基本概念 2.  基本功能 3.  加密形式 二.            数据加密的项目应用和学习 1.  媒体加密:DRM 2.  文件加密:文本 ...

  6. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  7. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  8. C#读写文件的方法汇总_C#教程_脚本之家

    C#读写文件的方法汇总_C#教程_脚本之家 http://www.jb51.net/article/34936.htm

  9. iOS里常见的几种信息编码、加密方法简单总结

    一.MD5 MD5编码是最常用的编码方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的 ...

随机推荐

  1. Selenium_使用switch_to.alert处理弹窗(14)

    与switch_to.window 和 switch_to.frame 相比,switch_to.alert的alert方法使用了@property 装饰器,所以在使用时alert被当成属性调用. 演 ...

  2. dispatcher-servlet.xml文件配置模板

    完整代码如下: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:/ ...

  3. [网络编程] 自己构建一个cgi.FieldStorage()的对象

    问题描述: 通常cgi.FieldStorage()返回一个类似于Python字典的对象. 在cgi框架中必须通过浏览器发送表单过来才能接受消息 那么我该怎么进行本地调试呢? 或者说在没有搭建好一整套 ...

  4. spring cloud Zuul + 路由熔断【服务降级】 --- 心得

    1.前言 刚入门 时,使用 ribbon + hystrix + restTemplate  ,实现了简单的 接口访问 + 客户端负载均衡 + 服务熔断保护 : 然后学习了 feign ,整合了  r ...

  5. spring boot --- 使用 注解 读取 properties 文件 信息

    1.前言 以前使用spring MVC框架 ,读取properties 配置文件需要写一大堆东西 ,也许 那时候 不怎么使用注解 ,现在使用spring boot ,发现了非常简便的办法---使用注解 ...

  6. Bootstrap实战 - 响应式布局

    一.介绍 响应式布局就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 导航栏与轮播在大部分网站的头部占很高的比重,特别是导航栏,扮演着网站地图的 ...

  7. 使用NSSM把任意exe程序注册成Windows服务

    1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...

  8. leetcode刷题目录

    leetcode刷题目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 4. 寻找两个有序数组的中位数 5. 最长回文子串 6. Z 字形变换 7. 整数反转 8. 字符串转换整数 (a ...

  9. leetcode 120. 三角形最小路径和 及 53. 最大子序和

    三角形最小路径和 问题描述 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] ...

  10. 如何使用iconfont的CDN

    如何使用iconfont的CDN iconfont作为阿里的图标库,在开发过成功用的已经是非常广泛了,但iconfont并不需要将图标下载后使用,而是可以直接用cdn引入使用,至于使用流程,请看下文. ...