Java是否有等效的mcrypt_create_iv函数?
我正在创建一个论坛,我需要用户不仅可以在网站上注册,还可以在客户端内注册;如果可能的话,我希望两种注册方法都使用相同的加密方式。
答案 0 :(得分:0)
没有单独的调用来创建随机IV,如果你将IV保留,那么Oracle实现将默认为零IV(由N个字节组成的IV设置为00
值,其中N是块大小)。另请注意,在Java中,getBlockSize()
方法返回字节数,而不是位。
Cipher enCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
// create IV array of the correct size
final byte[] ivData = new byte[enCipher.getBlockSize()];
// create (or retrieve) a cryptographic secure random implementation (auto-seeded)
final SecureRandom rng = new SecureRandom();
// fill the IV array with random data
rng.nextBytes(ivData);
// generate the ParameterSpec (to create a general parameter for Cipher.init())
IvParameterSpec iv = new IvParameterSpec(ivData);
// and initialize with the new IV
enCipher.init(Cipher.ENCRYPT_MODE, key, iv);