md5 php 加密后乱码_技术分享第四期—PHP

我渐渐就安于我的现状了,对于我的孤独,我也习惯了。总有那么多的人,追寻一些甜蜜温暖的东西,他们喜欢的永远是星星与花朵。但在星星雨花朵之中,怎样才能显得出一个人坚定的步伐呢。

双层描边标题

7b8baf009d85052fddcec60be7edb856.png点击上方蓝字,关注我们

创想

b321c3e51ee04b8c48aa7b8b277e10f0.gif

技术分享Four

f18b400852285c55fbcd1ef57a161acd.gif 74ee6a4d2b7d4a12f4711c550f280ba2.gif

技术分享第四弹

来袭 74ee6a4d2b7d4a12f4711c550f280ba2.gif

流水时间

铁打小创

前面三期的内容你学得怎么样呢

有没有感觉到任通二脉被打通

有没有体会到醍醐灌顶的感觉

不管有没有

跟着小创走

无须畏惧路上遇到的种种难题

前方道路漫漫

少年

请配妥战剑

继续仗走网络“天涯”

本期内容

PHP实现用户登录注册

4fbcfdf879fae41ecb7bd99d78163d9e.png

创想工作室

在信息化时代,你会越来越发现学习一门程序语言的重要性,并且自学语言也是一种能力。我相信,只要你跟着小创,点点积累慢慢进步,必能积跬步至千里!一起学习PHP新内容吧!

258afdfff7699c43878b0e406b678440.gif

PHP必学技能

1

知识点

2

实现流程

3

案例演示

4

优化建议

a72320ffa19a869043ce9fa95f6c926e.png

01 知识点

(一)PDO操作数据库

1. 建立连接

下面红色字体分别代表数据库类型、主机、数据库名、用户名、密码,需替换成自己的。

$conn = new PDO('mysql:host=localhost;dbname=test', 'root', '1');

$conn->exec('set names utf8');

//与下面等效

$conn = new PDO("mysql:host=localhost;port=3306;dbname=test;charset=utf8","root","1");

2. SQL查询

$tis = $conn->query($sql); //执行sql查询

//与下面等效

$tis = $conn->prepare($sql); //预处理

$tis->execute();  //执行预查询

3. 获取查询数据

PDO::FETCH_ASSOC 表示获取关联数组,PDO::FETCH_NUM 表示获取数字数组。

PDO::FETCH_OBJ 表示获取对象数组,不填默认会获取关联数组和数字数组。

$tis->fetchAll(PDO::FETCH_ASSOC);  //获取所有匹配的记录

$tis->fetch(PDO::FETCH_ASSOC);  //获取一行匹配的记录

$tis->rowCount();  //返回影响行数

$conn->lastInsertId() //获取最后一次插入的id

4. 关闭连接

$conn=null; //关闭连接,不用这么做的话,脚本结束也会自动关闭。

(二)Session会话操作  

1. 存储和取回Session

注意:session_start()相当于初始化$_SESSION变量,若不加session_start(),一切白操作。

session_start(); //启动会话,十分重要,要放在用到$_SESSION的最前面

$_SESSION['uid']=1; // 存储 session 数据

// 检索 session 数据

echo '用户ID:'.$_SESSION['uid']; //输出 用户ID:1

2. 销毁Session

session_start();  //启动会话

//检测session中是否已设置 "uid" 变量

if(isset($_SESSION['uid']))

    unset($_SESSION['uid']); //释放session中的 "uid" 变量

(三)  PHP的几种密码加密

1. 不安全的、内置希哈加密(不可逆加密)

$str='123';  //定义一个密码

md5($str);  //md5加密返回32位十六进制数字

sha1($str);  //sha1加密返回40位十六进制数字

crc32($str);  //crc32加密

2. hash加密(较全的哈希加密函数)

$str='123';  //定义一个密码

hash('md5',$str);  //对变量str进行md5加密,其中md5可换成crc32、adler32、md4、sha256、sha1、sha384以及sha512等

//都是哈希算法,所以它们之间速度差距不大,可选择混合加密增加安全性

//还可以在github网找哈希bcrypt算法类库,如phpass等,更专业

3. Password Hashing API 加密(PHP推荐)

PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)

PASSWORD_BCRYPT - 使用CRYPT_BLOWFISH 算法创建散列

PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列

$password='123';  //定义一个密码

$hash = password_hash($password, PASSWORD_DEFAULT); //对密码加密

password_verify($password, $hash); //验证已经加密的密码,返回bool类型

4. 对称算法(可逆加密)

常用的有如下内置的URL加密、Base64加密,高级的有DES/AES、3DES加密

$encode = base64_encode($str);  //base64编码加密

echo base64_decode($encode);  //base64编码解密

$encode = urlencode ($str);  //url编码加密

echo urldecode($encode);  //url编码解密

02 实现流程

(一)登录实现流程

e8e95649cb9f612cea3a8972fd79e215.png

(二)注册实现流程

4feede61e86ea6edc7c74c7d8efb3d7a.png

(三)登陆首页与退出登录实现流程

a790c59e3b0e55439fc8bd4ffdffcaba.png

03 案例演示

(一)目录结构

目录分布

login.html 登录页面

register.html 注册页面

login.php 实现登录功能

register.php   实现注册登录

index.php 实现登录检测功能

logout.php 实现退出登录功能

tools 存放php工具类

其他目录 存放html资源文件

6895a990947e0b27b186ec6c8023e1eb.png

(二)安装使用

1.搭建的服务器环境要求如下: 

• PHP >= 5.5.0 

• PDO PHP Extension 

2.把资源文件放到服务器根目录

3.用浏览器访问http://localhost/login.html

4.出现如图界面则搭建成功

5.将user.sql导入数据库或复制过来直接运行

aa275faa00ba7f8350680a5a36eb64d8.png

(三) sql文件导入

af59e8256451971e12901b0e8bc5a968.png

ab07c1b3f38d04712d36abf73f167def.png

14613e0758b712ae2c32d5296a906896.png

acd2f0a26dae7cc8d03039aa2e29f4de.png

(四)部分代码展示

2e9d2b33ac6342940825d410c105079a.png

登录实现

a2a60e031b74f78c744b602317f83513.png

注册实现

a7fbf406c88a27f9b55a5d2e5546e359.png

登录检测实现

d64785ca697e350acbe3676cdf36e905.png

退出登录实现

6ae57c9bca9ebd371fa1e319f5dd4109.png

数据库连接

04 优化建议

(一)建议

1. 登录注册增加验证码,防机器暴破密码;

2. 完善接收表单字段检测;

3. 处理PDO可能发生的异常;

4. 将重复的代码封装成函数;

82d78e4ba8150e91ade42711c748d063.png 82d78e4ba8150e91ade42711c748d063.png视频讲解 45dafc5b9f2e5406d46017af0b7b53d5.gif

下期预告

Java Web 之验证码校验快速实现

82d78e4ba8150e91ade42711c748d063.png 下期再见 82d78e4ba8150e91ade42711c748d063.png

本样式由135编辑器出品,不允许任何 a551ce47825b86407f9e0813afbaab71.png我是一个标题第三方编辑器抄袭使用,违者必纠。 a2622dfe4c7e0879edb50727c2dc8f63.png

编辑:林苗真

剪辑:肖可欣

初审:黄晓丹 肖可欣 

复审:莫嘉文

终审:陈正铭

出品:创想工作室(韶关市艾悉逖网络科技有限公司)

84da1738728e421891d42a64fb439812.png 扫码关注我们 45dafc5b9f2e5406d46017af0b7b53d5.gif 如有收获,一键三连! 4e74ba362fcc5ac98467b3fa2ee3937e.gif f9f79f12869c4d716952ab524579ea24.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值