При попытке понять проблему я столкнулся с интересной проблемой.IvParameterSpec class
не может удерживать IV неподвижным.Он меняется для каждого println
.
Я использую версию javac 10.0.2 в Ubuntu Linux
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
печатает разные значения.
ctr_iv = [B@42f30e0a
ctr_iv = [B@24273305
ctr_iv = [B@5b1d2887
ctr_iv = [B@46f5f779
ctr_iv = [B@1c2c22f3
ctr_iv = [B@18e8568
В чем проблемаВот?Разве значения не должны быть одинаковыми?