继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

有梦
关注TA
已关注
手记 82
粉丝 27
获赞 19

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

课程章节: 用户管理模块

课程讲师: 神思者

课程内容:


课程内容:

    加密与解密


课程收获:

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

http://img4.mukewang.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")


http://img1.mukewang.com/63569e9d0001eb7303290072.jpg



http://img.mukewang.com/63569eb00001c96913640888.jpg







打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP