为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第1天 用户密码的加密与解密

标签:
SpringBoot

课程名称:SpringBoot+Vue3 项目实战,打造企业级在线办公系统

课程章节: 用户管理模块

课程讲师: 神思者

课程内容:


课程内容:

    加密与解密


课程收获:

    再tb_user数据表中保存的用户信息里面,password字段的值是经过加密存储的,而且不存在全局密钥,使用username作为密钥,对password字段进行加密,也就是说10000w条的用户记录,就存在10000w个密钥,这对黑客采用穷举法来破译来说,计算量是特别大的,如果每个密钥中采用加盐的做法,那么黑客估计自杀的心都有乐,例如对用户名取md5值,然后取最后六位字符串和用户名拼接在一起,当作密钥

https://img1.sycdn.imooc.com//63569dc30001bd5906470131.jpg


说到加密算法,课程中采用的是ibm开发的AES算法,这种对称加密算法再加密和解密的时候,使用相同的数据,也就是说密钥可以用来加密数据,也可以用来解密数据,

mysql数据库提供了内置的DES加密和解密函数,可以直接调用,加密的函数叫做`AES_ENCRPT()`,解密的函数叫做`AES_DECRPT()`,

ELECT AES_ENCRYPT("abc123456","HelloWorld");


因为加密后的字节数据在UTF8字符集中会出现乱码,所以我把字节数据转换成16进制数据(HEX),就不会出现乱码了。```sql SELECT HEX(AES_ENCRYPT("abc123456","HelloWorld")); ```


解密的时候,我们需要先把16进制数据转换成字节,然后进行解密。

SELECT AES_DECRYPT(UNHEX("F943968B28B2D93E2DC48CD72014FE1A"),"HelloWorld")


https://img1.sycdn.imooc.com//63569e9d0001eb7303290072.jpg



https://img1.sycdn.imooc.com//63569eb00001c96913640888.jpg







点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
27
获赞与收藏
19

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消