gpt4 book ai didi

Java密码学问题(AES-ECB加密)

转载 作者:行者123 更新时间:2023-12-02 07:59:04 24 4
gpt4 key购买 nike

1) 我在任何地方都找不到 JCE AES 加密的 Java 实现,但是有谁知道它作为参数的字节数组是否被视为有符号或无符号?我使用的代码是:

public static byte [] ecbAesEncrypt(byte [] key, byte [] currentVector) {
SecretKeySpec keySpec = null;
Cipher cipher = null;
byte [] encryptedValue = null;

try {
keySpec = new SecretKeySpec(key, "AES");

cipher = Cipher.getInstance("AES/ECB/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);

encryptedValue = cipher.doFinal(currentVector);
}
catch (Exception e) {
e.printStackTrace();
return null;
}

if (DEBUG)
printHex("AES-ECB encrypt: ", encryptedValue);

return encryptedValue;
}

2) 2 个有符号字节的按位异或会得到与 2 个无符号字节的按位异或相同的结果吗?我的意思是只是位表示是相同的。我想是的,但只是想确定一下。

3)与问题 1 有点相关,哪些按位运算会在有符号和无符号字节之间产生不同的结果?

最佳答案

AES 将字节视为纯二进制数据。不是带符号或不带符号的数字。

Java 中没有无符号字节。它们总是有签名的。但只有当你对它们进行整数算术运算时,符号才重要。

按位运算符在 Java tutorial 中进行了描述。 .

关于Java密码学问题(AES-ECB加密),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9181030/

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