PHP的加密方法汇总
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的加密方法汇总的更多相关文章
- 转发:C#加密方法汇总
转自:C#加密方法汇总 方法一: //须添加对System.Web的引用 using System.Web.Security; ... /// <summary> /// SHA1加密字符 ...
- C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)
using System;using System.Collections.Generic;using System.Text; namespace StringEncry{ class Encode ...
- php使用N层加密eval gzinflate str_rot13 base64 破解方法汇总
php使用N层加密eval gzinflate str_rot13 base64 破解方法汇总 来源:本站转载 作者:佚名 时间:2011-02-14 TAG: 我要投稿 PHP使用eval(gzin ...
- C#.NET中对称和非对称加密、解密方法汇总--亲测可用
C#.NET中对称和非对称加密.解密方法汇总--亲测可用 在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...
- ASP.NET(C#)常用数据加密和解密方法汇总
一. 数据加密的概念 1. 基本概念 2. 基本功能 3. 加密形式 二. 数据加密的项目应用和学习 1. 媒体加密:DRM 2. 文件加密:文本 ...
- 你真的会玩SQL吗?实用函数方法汇总
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- Java实现时间动态显示方法汇总
这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...
- C#读写文件的方法汇总_C#教程_脚本之家
C#读写文件的方法汇总_C#教程_脚本之家 http://www.jb51.net/article/34936.htm
- iOS里常见的几种信息编码、加密方法简单总结
一.MD5 MD5编码是最常用的编码方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码. MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的 ...
随机推荐
- 在使用django admin的后台搜索时报错
在使用django admin的后台搜索时报错 百度说在search_fields中定义了非字符串字段,最后发现author引用了外键 解决办法: 有外健时应写成: 本表外键字段__外键所在表所需要查 ...
- Vue项目中使用websocket
<template> <div class="test"> </div> </template> <script> ex ...
- Windows 10 安装 Git 与初次运行前的配置
Windows 10 安装 Git 与初次运行前的配置 在 Windows 上安装 初次运行 Git 前的配置 用户信息 文本编辑器 检查配置信息 获取 Git 仓库 在现有目录中初始化仓库 克隆现有 ...
- 使用.NET 6开发TodoList应用(28)——实现应用程序健康检查
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 应用健康检查在容器部署的微服务场景下非常常见,相比而言单体非容器部署的应用就不太关心这个特性,为了后续的内容我们在本文中简单介 ...
- 学习javaScript必知必会(6)~类、类的定义、prototype 原型、json对象
一.定义类:使用的是funciton,因为在js中没有定义类的class语句,只有function. ■ 举例: //定义一个Person类(通过类的无参构造函数定义类) function Perso ...
- Spark基础知识详解
Apache Spark是一种快速通用的集群计算系统. 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎. 它还支持一组丰富的高级工具,包括用于SQL和结构化数 ...
- 【经验总结】VSCode中找不到numpy/matplotlib/pillow,navigator没了
在VSCode中写python时,import numpy和matplotlib总是报错找不到模块,用conda list和pip list看到都安装了numpy,前后折腾了很久遇到了好几个问题: 无 ...
- Cesium入门8 - Configuring the Scene - 配置视窗
Cesium入门8 - Configuring the Scene - 配置视窗 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coini ...
- JuiceFS 在理想汽车的使用和展望
理想汽车是中国新能源汽车制造商,设计.研发.制造和销售豪华智能电动汽车,于 2015 年 7 月创立,总部位于北京,已投产的自有生产基地位于江苏常州,通过产品创新及技术研发,为家庭用户提供安全及便捷的 ...
- MyCms 自媒体 CMS 系统 v2.8,支持织梦数据导入
MyCms 是一款基于Laravel开发的开源免费的自媒体博客CMS系统,助力开发者知识技能变现. MyCms 基于Apache2.0开源协议发布,免费且不限制商业使用,欢迎持续关注我们. V2.8 ...