PHP中怎么实现加密算法,加密函数及方法是什�
Admin 2022-08-26 群英技术资�
首先我来简单介绍一下为什么要加密?通常,当数据在传送时,数据最容易受到攻击,那么加密就是对信息进行编码的过程,以便对未经授权的用户保持隐藏。它能确保私有数据、敏感数据,并可以提高客户端应用程序和服务器之间通信的安全性�
下面就给大家介绍PHP中最常用的三个加密函数,分别�md5()
�crypt()
�password_hash()
�
一:使� md5()
加密
md5()函数可以计算字符串的 MD5 散列,它是最常用的加密方法;
md5函数的语法为�
md5(string,raw)
其中string是要加密的字符串;row是可选参数,它指定输出格式(十六进制或二进制输出格式),可以是TRUE,也可以是FALSE,默认为FALSE�32字符十六进制数)�
使用示例�
加密密码值并存储在数据库中�
<?php $conn = new mysqli('hostname', 'username', 'password', 'databasename'); $pwd = $_POST['password']; $encrypted_pwd = md5($pwd); $username = $_POST['username']; $insert ="INSERT into an_users (id, username, password) VALUES ('', '$username', '$encrypted_pwd')"; if($conn->query($insert)){ echo 'Data inserted successfully'; } else{ echo 'Error '.$conn->error; } ?>
二、使� crypt()
加密密码
crypt函数的作用是使用salt返回一个散列字符串。此方法生成弱密码,它为salt接受第二个参数,这是一个可选参数;salt是一个格式化字符串,它告诉crypt()方法使用哪种算法进行散列�
其语法是�
crypt($string, $salt);
有很多salt常量,但这里我使用了CRYPT_MD5,这将生� 12 个字符的salt�
代码如下�
<?php $conn = new mysqli('hostname', 'username', 'password', 'databasename'); $pwd = $_POST['password']; if(CRYPT_MD5 == 1) { $encrypted_pwd = crypt($pwd, '$12$hrd$reer'); } $username = $_POST['username']; $insert = "INSERT INTO an_users (id, username, password) VALUES('', '$username', '$encrypted_pwd')"; if($conn->query($insert)){ echo 'Data inserted successfully'; } else{ echo 'Error '.$conn->error; } ?>
附:
三:使用 password_hash()
加密密码
password_hash()使用足够强度的单向散列算法创建一个新的密码散列,password_hash()函数与crypt()函数兼容,它在PHP 5.1中实现�
password_hash()的语法是 �
password_hash(string, algorithm, options)
其中string是要加密的字符串,algorithm表示对密码进行哈希处理时使用的算法,options是包含选项的关联数组�
使用示例如下�
使用password_hash()加密密码值并存储在数据库中:
<?php // 连接数据� $conn = new mysqli('hostname', 'username', 'password', 'databasename'); $pwd = $_POST['password']; // 使用PASSWORD_DEFAULT $hash = password_hash($pwd, PASSWORD_DEFAULT); $username = $_POST['username']; $insert ="INSERT into an_users (id, username, password) VALUES ('', '$username', '$hash')"; if($conn->query($insert)){ echo 'Data inserted successfully'; } else{ echo 'Error '.$conn->error; } ?>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容�
猜你喜欢
在网站的前端开发中,倒计时功能是比较常见的,而且应用也很多,例如商品秒杀倒计时,活动结束时间倒计时,考试时间倒计时等等。这篇文章就主要分享用PHP来实现考试倒计时的功能,对于PHP初学者来说,本文代码具有一定的参考价值,希望对大家理解PHP倒计时有帮助�
thinkphp中有预处理。“ThinkPHP3.1”版本增加了对条件字符串进行预处理的支持,让ORM的安全性更加得以保证。方法:1、使用where方法对字符串条件预处理;2、使用query和execute方法对原生SQL查询方式预处理�
php7.0安装redis扩展的方法:首先查看自己PHP的版本;然后下载并解压redis;最后在php.ini文件中添加“extension=php_redis.dll”即可�
在PHP中可以通过register_shutdown_function+error_get_last 2个函数来捕获致命错误,并将错误信息发送给客户端连接�
php调用类的方法在本片文章中给大家详细分享了PHP程序中去调用另外一个文件类的方法和代码写法,一起学习下。首先在一个tool.php文件中声明一个类�<?
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所�
增值电信经营许可证 : B1.B2-20140078