Java mcrypt_create_iv

时间:2014-01-21 17:09:51

标签: java php encryption

Java是否有等效的mcrypt_create_iv函数?

我正在创建一个论坛,我需要用户不仅可以在网站上注册,还可以在客户端内注册;如果可能的话,我希望两种注册方法都使用相同的加密方式。

1 个答案:

答案 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);