Java 加盐加密的简单理解

电玩女神 2021-05-18 15:38 1453阅读 0赞

背景

对于同一密码,同一加密算法会产生相同的hash值。这样,当用户进行身份验证时,对用户输入的明文密码应用相同的hash加密算法,得出一个hash值,然后使用该hash值和之前存储好的密文值进行对照,如果两个值相同,则密码认证成功,否则密码认证失败。
出于更安全的考虑,即使两个用户输入的是相同的密码,也应该要保存为不同的密文,即使用户输入的是弱密码,也需要考虑进行增强,从而增加密码被攻破的难度。因此出现了加盐加密。

加密过程(用户注册)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NhY3JlZG5lc3M

也就是说最终的密文是以下两个内容的函数:
用户输入的密码明文
盐值
最后要将以下内容存入数据库:
用户的用户名
最终的密文
加密所用的盐值

校验过程(用户登录)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NhY3JlZG5lc3M 1

发表评论

表情:
评论列表 (有 0 条评论,1453人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java加密

    1.场景还原     很多同学认为登录密码经过MD5加密后就万事无忧,遗憾的告诉你,这并非万全之策;虽然这个世界上没有绝对的安全,但是我们能不能动动脑筋将密码加密的更安全

    相关 HTTPS简单理解

    一、对共钥私钥、数字签名、证书的理解 1.公钥私钥(一般用于确保信息的安全性) 非对称加密:加密解密用的不是同一个东西。 公钥就像是锁,可以对信息进行加密,加密以

    相关 Java 简单理解

    背景 对于同一密码,同一加密算法会产生相同的hash值。这样,当用户进行身份验证时,对用户输入的明文密码应用相同的hash加密算法,得出一个hash值,然后使用该hash...