gpt4 book ai didi

java - Spring 用户忘记密码替代方法

转载 作者:行者123 更新时间:2023-11-29 08:57:27 27 4
gpt4 key购买 nike

我想允许用户提出安全问题。我正在使用 Spring3,但不确定是否存在执行此操作的标准方法。任何人都可以指出这样的标准吗?

最佳答案

我不熟悉涵盖此内容的标准,但我建议您像对待密码一样对待安全问题...

  • 确保您关闭 autocomplete="off"以便浏览器不会记住他们的答案

  • 为答案生成加盐哈希(或者您可以将其重复用于他们的密码)

    public byte[] generateSalt() throws NoSuchAlgorithmException {
    // VERY important to use SecureRandom instead of just Random
    SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");

    // Generate a 8 byte (64 bit) salt as recommended by RSA PKCS5
    byte[] salt = new byte[8];
    secureRandom.nextBytes(salt);

    return salt;
    }
  • 加密答案

    public static byte[] getEncryptedAnswer(String answer, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException {
    KeySpec spec = new PBEKeySpec(answer.toCharArray(), salt, 20000, 160);

    SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");

    return secretKeyFactory.generateSecret(spec).getEncoded();
    }

存储加盐哈希和加密答案。此时,您几乎就像使用密码一样使用此问题的答案。


综上所述,我必须同意 jHilscher 的观点……这些安全问题中有太多是可以预测或容易猜到的。最喜欢的颜色,他们毕业的年份等等……我从来没有用正确的信息回答这些问题。我建议您在需要时寻找其他方法来重置密码。

关于java - Spring 用户忘记密码替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19508871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com