gpt4 book ai didi

java AES/CFB/NoPadding :when encrypting similar data the results are similar too

转载 作者:行者123 更新时间:2023-12-01 11:35:00 25 4
gpt4 key购买 nike

package com.game;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
public class MainTest5 {
public static byte[] encrypt(String content, String key) {
try {
Cipher aesECB = Cipher.getInstance("AES/CFB/NoPadding");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivSpec = new IvParameterSpec(key.getBytes());
aesECB.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] result = aesECB.doFinal(content.getBytes());
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(new String(encrypt("1234567890123456", "1234567890123456"), "ISO_8859_1"));
System.out.println(new String(encrypt("1234567890123457", "1234567890123456"), "ISO_8859_1"));
}
}

我只是想加密一些相似的数据,希望结果不相似,但是长度必须一样。我能做什么?

最佳答案

你的 IV 不应该仅仅重复使用 key 字节。 IV 的全部意义在于充当“种子”以确保密文不会保持不变。

参见wikipedia了解更多信息。

关于java AES/CFB/NoPadding :when encrypting similar data the results are similar too,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090816/

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