PHP常见加密函数用法示例【crypt与md5】


Posted in PHP onJanuary 27, 2019

本文实例讲述了PHP常见加密函数用法。分享给大家供大家参考,具体如下:

1.crypt()函数

crypt()函数用于返回使用DES、Blowfish或MD5算法加密过后的字符串,crypt(str,salt)接受2个参数,第1个为需要加密的字符串,第2个为盐值(加密干扰值,如果没有提供,则默认由PHP自动生成),返回的字符串为散列的字符串或者是一个少于13个字符的字符串;

<?php
//使用crypt()函数进行加密
$password = '3water.com';
//没有提供盐值
echo "加密前:".$password;
echo "加密后(无盐值):".crypt($password);
echo "<hr>";
//提供盐值
$salt = "good";
echo "加密后(有盐值):".crypt($password,$salt);
?>

加密的字符串为“3water.com”:

第一次:

PHP常见加密函数用法示例【crypt与md5】

刷新后:

PHP常见加密函数用法示例【crypt与md5】

总结:通过刷新前与刷新后可以发现,crypt()函数如果没有盐值加密后的字符串的第2个$与第3个$之间的字符串的8个字符串是由PHP自动生成的,每刷新一次就变一次;crypt()函数如果定义了盐值后,只会截取盐值的前2位添加在加密后的字符串前且加密后的字符串是不变的。

注意:crypt()函数是一种单向算法,没有相应的解密函数。PHP添加盐值默认使用DES加密,如果salt这个字符串以$1$开头,以$结尾则是MD5加密,只会截取盐值的前八位添加在加密后的字符串前。

PHP常见加密函数用法示例【crypt与md5】

PHP常见加密函数用法示例【crypt与md5】

2.md5()函数

MD5函数格式:md5(string),返回一个32位的字符串,且MD5加密对于大小写敏感;MD5加密主要应用在校验网站用户密码上,用户注册时的密码经过MD5计算后存入数据库,当用户登录时,再把用户输入的密码经过MD5计算后与数据库中经过MD5加密的字符串进行比较。

<?php
//使用md5()函数进行加密
$password = '3water.com';
echo "加密前:".$password;
echo "<hr>";
echo "MD5加密后:".md5($password);
?>

结果如下:

PHP常见加密函数用法示例【crypt与md5】

PHP 相关文章推荐
PHP中PDO基础教程 入门级
Sep 04 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 PHP
基于php判断客户端类型
Oct 14 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 PHP
PHP中SESSION过期设置
Mar 09 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 #PHP
PHP的PDO事务与自动提交
Jan 24 #PHP
PHP的PDO连接讲解
Jan 24 #PHP
PHP的PDO预定义常量讲解
Jan 24 #PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 #PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 #PHP
详解php伪造Referer请求反盗链资源
Jan 24 #PHP
You might like
PHP解析目录路径的3个函数总结
2014/11/18 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
用python处理MS Word的实例讲解
2018/05/08 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Python内置函数及功能简介汇总
2020/10/13 Python
python mock测试的示例
2020/10/19 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
J2EE模式面试题
2016/10/11 面试题
经贸日语毕业生自荐信
2013/11/03 职场文书
班级寄语大全
2014/04/10 职场文书
我爱我校演讲稿
2014/05/21 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2019年员工晋升管理制度范本!
2019/07/08 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js