Weak Encryption: Missing Required Step


Abstract
在對稱密鑰生成、加密或解密過程中,代碼錯過了對一個必需步驟的調用。
Explanation
對稱密鑰的生成以及加密和解密涉及多個步驟,錯過任何必需步驟都可能會削弱所生成對稱密鑰或密文的強度,或導致對現有密文的不正確解密。

例 1:下列代碼跳過了  KeyGenerator 的初始化步驟,可能導致使用比推薦的密鑰更小的密鑰:
...
final String CIPHER_INPUT = "123456ABCDEFG";
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");

SecretKey secretKey = keyGenerator.generateKey();
byte[] byteKey = secretKey.getEncoded();
....

解決方案:

KeyGenerator generator = KeyGenerator.getInstance("DES");
SecureRandom random = new SecureRandom();
generator.init(random);//初始化秘鑰生成器
SecretKey key = generator.generateKey();//生成密鑰
Mac mac = Mac.getInstance("HmacSHA256");//得到此密鑰的Mac對象

                

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM