每次打印的IvParameterSpec值不同

时间:2018-11-24 14:13:38

标签: java linux encryption

尝试理解问题时,我遇到了一个有趣的问题。 <Link />无法固定IV。每个IvParameterSpec class都会改变。

我正在Ubuntu Linux上使用javac 10.0.2版本

println

每个import javax.crypto.spec.IvParameterSpec; import java.util.Base64; public class Encryptor { public static void main(String[] args) { IvParameterSpec ctr_iv; String IV = "0102030405060708"; byte [] counter = IV.getBytes(); ctr_iv = new IvParameterSpec(counter); System.out.println("ctr_iv = "+ ctr_iv.getIV()); System.out.println("ctr_iv = "+ ctr_iv.getIV()); System.out.println("ctr_iv = "+ ctr_iv.getIV()); System.out.println("ctr_iv = "+ ctr_iv.getIV()); System.out.println("ctr_iv = "+ ctr_iv.getIV()); System.out.println("ctr_iv = "+ ctr_iv.getIV()); } } 都会打印不同的值。

println

这是什么问题?值应该不一样吗?

1 个答案:

答案 0 :(得分:1)

根据方法IvParameterSpec.getIV()的{​​{3}}:

  

每次调用此方法时都会返回一个新数组。

因此,您认为值应该相同的假设可能是正确的,但这始终是一个 new 数组。