gpt4 book ai didi

java - 每次打印的 IvParameterSpec 值不同

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:35 26 4
gpt4 key购买 nike

当我试图理解一个问题时,我遇到了一个有趣的问题。 IvParameterSpec 类 无法固定 IV。它会随着每个 println 而改变。

我在 Ubuntu Linux 上使用的是 javac 10.0.2 版本

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

这里有什么问题?值不应该相同吗?

最佳答案

根据documentation方法IvParameterSpec.getIV():

Returns a new array each time this method is called.

所以您认为值应该相同的假设可能是正确的,但它始终是一个数组。

关于java - 每次打印的 IvParameterSpec 值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53459039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com