我正在嘗試實現AES自定義密碼加密並希望瞭解下面的代碼。AES自定義密碼密鑰
我不太明白爲什麼當我使用假設產生SecretKey爲256位的「PBKDF2WithHmacSHA256」時,爲什麼需要指定密鑰大小256「PBEKeySpec(password,salt,65536,256)」 。
在使用我的密碼+ salt生成密鑰後,爲什麼我需要將它與SecretKeySpec作爲AES算法關聯。
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
KeySpec spec = new PBEKeySpec(password, salt, 65536, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
要清楚的是:你問的是基於密碼的加密,其中使用密碼來派生密鑰,然後用它來加密一些其他數據而不是密碼本身,對吧? –
@ ArtjomB。是。我正在嘗試實施基於密碼的加密。而我認爲我還有一個問題是加密這個用於加密數據的「密碼」。 – youcanlearnanything