在PHP中实现加密的这三种方法,你会选择哪个?
时间:2021-09-02
来源:互联网
标签:
今天PHP爱好者给大家分享在PHP中怎么实现加密算法吗?你知道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;
}
?>
附:
三:使用 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爱好者其它相关文章!
-
如何注册谷歌账号(谷歌账号注册方法) 怎么跳过手机验证 时间:2025-09-29
-
access数据库8个经典实例 时间:2025-09-29
-
mmc.exe是什么进程 mmc.exe应用程序错误的原因及解决方法 时间:2025-09-29
-
4种基本的编程命名规范介绍(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法) 时间:2025-09-29
-
Ghostscript下载、安装教程 Ghostscript命令参数详解 时间:2025-09-29
-
Linux中内存管理NUMA架构详解 时间:2025-09-29
今日更新
-
揭秘网络四大梗:爆笑名场面背后的神转折,一次看懂全网热梗来龙去脉!
阅读:18
-
四大狗贼是什么梗?揭秘网络热词背后的爆笑真相,看完秒懂!
阅读:18
-
四大虐梗是什么梗?揭秘网络最扎心四大名场面,看完泪崩!
阅读:18
-
全境封锁手游需要什么配置-全境封锁手机配置
阅读:18
-
恋与制作人2025中秋节福利情报-登录可获得中秋赠礼
阅读:18
-
燕云十六声跑图长鸣玉获得方法-快速积攒长鸣玉
阅读:18
-
第五人格第四十赛季精华1时装囚徒黎明赋格设计公布
阅读:18
-
元梦之星美团皮肤怎么获取-圆梦美团皮肤获取
阅读:18
-
华夏绘世录中秋活动金秋献瑞明日开启-参与得奖励
阅读:18
-
QQ飞车T车孙悟空有什么特性-孙悟空赛车技能
阅读:18