亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SHA512 的函數對不同的輸入返回相同的結果

SHA512 的函數對不同的輸入返回相同的結果

HUX布斯 2022-10-07 16:20:13
我正在嘗試實現一個登錄屏幕,您的所有輸入都由 SHA 512 加密,稍后對該功能進行一些小調整(反轉字符串,擴展長度)。對于我的用戶名,加密效果很好,但另一方面,無論我輸入什么,我的密碼都會給我相同的結果。 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;}然后我檢查一個數組是否有一個可以放置信息的地方,如果有一個存儲在那里。 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");        }    }數組 username[] 和 password[] 由我的構造函數填充為“空”或 null。我的主要問題是:無論密碼輸入是什么,我都會得到相同的密鑰:javax.crypto.spec.SecretKeySpec@fffea4cc如果我只是比較字符串以確定它是否正確,這會給我帶來很大的安全漏洞......
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

提供的代碼有幾個問題,首先它使用了靜態弱鹽。雖然有比 PBKDF2(? Argon2、BCrypt、SCrypt)更好的密碼保護算法,但如果實施正確,它可以使用。在那里,我想推薦著名的庫Defuse,它使密碼哈希和驗證變得輕而易舉,它可以作為單個類文件包含在內。

順便說一句,散列密碼無法反轉,散列與加密不同。


查看完整回答
反對 回復 2022-10-07
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號