在PHP中实现加密的方法有哪些

发布时间:2021-08-21 09:46:55 作者:chen
来源:亿速云 阅读:109

这篇文章主要讲解了“在PHP中实现加密的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在PHP中实现加密的方法有哪些”吧!

首先我来简单介绍一下为什么要加密?

通常,当数据在传送时,数据最容易受到攻击,那么加密就是对信息进行编码的过程,以便对未经授权的用户保持隐藏。它能确保私有数据、敏感数据,并可以提高客户端应用程序和服务器之间通信的安全性。

下面就给大家介绍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;  
  }
?>

附:

在PHP中实现加密的方法有哪些

三:使用 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;  
}
?>

感谢各位的阅读,以上就是“在PHP中实现加密的方法有哪些”的内容了,经过本文的学习后,相信大家对在PHP中实现加密的方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 在java中实现php中md5加密的方法
  2. 怎么在PHP中实现SSL加密解密

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:Docker如何安装influxDB分布式时间序列数据库

下一篇:如何使用Docker部署MySQL 5.7&8.0主从集群

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》