我正在嘗試實(shí)現(xiàn)一個(gè)登錄屏幕,您的所有輸入都由 SHA 512 加密,稍后對(duì)該功能進(jìn)行一些小調(diào)整(反轉(zhuǎn)字符串,擴(kuò)展長度)。對(duì)于我的用戶名,加密效果很好,但另一方面,無論我輸入什么,我的密碼都會(huì)給我相同的結(jié)果。 public static String password_encrypt(String input) { try { String password_ = input; int iterations = 250000; String salt = "salt"; SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA512"); char[] passwordChars = password_.toCharArray(); KeySpec spec = new PBEKeySpec(passwordChars, salt.getBytes(), iterations, 256); SecretKey key = factory.generateSecret(spec); byte[] passwordHash = key.getEncoded(); SecretKey secret = new SecretKeySpec(key.getEncoded(), "AES"); input = secret.toString(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidKeySpecException e) { // TODO Auto-generated catch block e.printStackTrace(); } return input;}然后我檢查一個(gè)數(shù)組是否有一個(gè)可以放置信息的地方,如果有一個(gè)存儲(chǔ)在那里。 for (int i = 0; i < username.length; i++) { System.out.println("username " + username[i]); if (name.equals(username[i])) { System.out.println("Dieser Username ist bereits vergeben!"); break; } if ("empty".equals(username[i]) || null == username[i]) { username[i] = name; stelle = i; System.out.println("Username wurde vergeben"); break; } else if (name.equals(username[i])) { System.out.println("1234"); } }數(shù)組 username[] 和 password[] 由我的構(gòu)造函數(shù)填充為“空”或 null。我的主要問題是:無論密碼輸入是什么,我都會(huì)得到相同的密鑰:javax.crypto.spec.SecretKeySpec@fffea4cc如果我只是比較字符串以確定它是否正確,這會(huì)給我?guī)砗艽蟮陌踩┒?.....
添加回答
舉報(bào)
0/150
提交
取消