【备战春招】第13天 使用Hash加盐对Password加密

2023/2/21 3:20:54

本文主要是介绍【备战春招】第13天 使用Hash加盐对Password加密,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:SpringBoot2.X + Vue + UniAPP,全栈开发医疗小程序

课程章节:第三章 使用Vue3.0+SpringBoot实现医护人员管理

课程讲师: 神思者

课程内容:


医院管理人员想要管理医护信息,首先要登陆MIS系统。登陆MIS系统的密码必然要加密存储到数据库中。


一、熟悉数据表

mis_user数据表是MIS系统的用户表,所有能登陆MIS系统的帐户都保存在这张表里面。首先要明确:不是医院所有的工作人员都能登陆MIS系统。例如医护人员可以登录MIS系统,但是保安就不需要用MIS系统,所以在mis_user表中给需要使用MIS系统的用户创建帐户。

二、使用哈希算法对密码加密

1. 哈希加密

用户的密码需要加密之后再保存到数据库中,这里选择不可逆的哈希算法加密用户的密码。哈希算法有两种常见的实现方案:MD5和SHA。哪种安全性都挺高的,无法暴力破解。

https://img4.sycdn.imooc.com/63f2c3840001488906980126.jpg

2. 哈希字典反破解

虽然算法层面破解不了哈希算法,于是就有人另辟蹊径了。他把各种字符串文字都用哈希算法生成加密结果,俗称哈希字典。然后把要破解的哈希值,代入哈希字典,看看能跟哪个记录对得上,于是就得出原始数据是什么了。现在网上就有哈希字典可以下载,所以用哈希加密的结果很容被破解。

https://img1.sycdn.imooc.com/63f2c3af0001dbc109050552.jpg

3. 多次哈希加密

为了防御哈希字典破解,可以对数据做多次哈希加密。比如说第一次用MD5加密,然后再用SHA加密。虽然这么做也能起到一定的防破解作用。

https://img2.sycdn.imooc.com/63f2c3fc0001dae408730082.jpg

因为哈希值通常是16、32、64个字符组成,所以用哈希字典破解了SHA算法原始数据之后,黑客马上就能识别出来原始数据是用哈希加密过的,于是套用到哈希字典再解密一次。

4. 原始数据加盐混淆

如果我们混淆了原始数据,那么即便黑客破解了原始数据也无法使用。比如说我们对用户原始密码生成哈希值,用哈希值前六位和后三位字符,与原始密码拼接,然后再用哈希算法生成加密结果。即便黑客破解了原始数据,但是这个原始数据并不是用户的密码,黑客用这个混淆过的密码字符串是无法登陆系统的。

https://img2.sycdn.imooc.com/63f2c451000120f108680079.jpg

三、编写持久层代码

MisUserDao.xml文件中,声明用于登陆的SQL语句。

<select id="login" parameterType="Map" resultType="Integer">

    SELECT "id"

    FROM HOSPITAL.MIS_USER

    WHERE "username" = #{username}

      AND "password" = #{password}

</select>

com.example.hospital.api.db.daoMisUserDao接口中,声明DAO方法。

public interface MisUserDao {

    ……

    public Integer login(Map param);

}

https://img1.sycdn.imooc.com/63f2c5a1000182f417350873.jpg

课程收获:通过视频加文档结合的方式,了解了Hash加盐对Password加密,期待后续学习!


这篇关于【备战春招】第13天 使用Hash加盐对Password加密的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程