我正在尝试实现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