簡體   English   中英

用戶在春季忘記了密碼替代方法

[英]User forgot password alternative approach in spring

我想允許用戶提出安全問題。 我正在使用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 ...這些安全問題太多是可預測的或容易猜測的。 最喜歡的顏色,畢業的年份等等。。。我永遠不會用正確的信息回答這些問題。 我建議您在需要時找到其他方法來重置密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM