2016-12-19 87 views
0

是否可以使用AES算法對塊大小爲128位和密鑰大小爲256個字符(字節)的Java加密文件?具有256個字符密鑰大小的Java AES 128

根據references 密鑰大小可以是最大256位或32個字符。

我有256個字符的要求,可以嗎?

+0

當然,您可以使用MessageDigest來散列密碼,並根據摘要結果獲取所需的位數。 –

+1

不要使用MessageDigest來派生密鑰,這是不夠的,只是添加鹽對提高安全性沒有多大作用。取而代之的是用隨機鹽對HMAC進行大約100毫秒的持續時間並用散列表保存鹽。使用諸如「PBKDF2」(又名'Rfc2898DeriveBytes'),'password_hash' /'password_verify','Bcrypt'和類似函數的函數。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。保護您的用戶非常重要,請使用安全的密碼方法。 – zaph

回答

1

AES具有一個128位的塊大小和三個128位的密鑰大小,256個位。

如果您有256個字符,根據編碼的字符可能會超過1個字節,您可以使用密鑰派生方法(例如PBKDF2(基於密碼的密鑰派生函數2))從字符派生密鑰。

請參閱問題的評論。

+0

謝謝@ zaph。將使用密鑰派生。 –

相關問題