is AES key random?

后端 未结 4 1411
轮回少年
轮回少年 2021-02-10 22:46

AES key may be generate by this code

KeyGenerator kgen = KeyGenerator.getInstance(\"AES\");
kgen.init(128); 

but

If I have a \"very re

4条回答
  •  耶瑟儿~
    2021-02-10 23:15

    The AES key can be any 128 bits. It should be be practically unguessable, whatever the method of creating it.

    For Example:

    SecureRandom sr = new SecureRandom()
    
    key = new byte[16];
    iv = new byte[16];
    
    sr.nextBytes(key);
    sr.nextBytes(iv);
    
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key,"AES"), new IvParameterSpec(IV));
    

    SecretKeySpec, by the way, is just a thin wrapper around a byte[] --- it does not transform the key in any way. No "special algorithm".

提交回复
热议问题