gpt4 book ai didi

java - AES-256 加密 : Generate 256bits(32bytes) key from my fixed string

转载 作者:行者123 更新时间:2023-12-01 12:43:03 29 4
gpt4 key购买 nike

我想使用 AES256 加密文本,我想使用我的电子邮件 test@gmail.com 作为 key 对其进行加密。

这是我尝试过的:

String key = "test@gmail.com";
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

byte iv[] = SOME_RANDOM_32_BYTES;
IvParameterSpec ivSpec = new IvParameterSpec(iv);

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);

byte[] encryptedResult = cipher.doFinal(text.getBytes("UTF-8"));

当我运行上面的代码时,我得到了InvalidKeyException:

java.security.InvalidKeyException: Key length not 128/192/256 bits.

我在网上查了一下,原因是我的 key 不是128/192/256位。我的问题是,如何从我的电子邮件字符串 test@gmail.com 生成 256 位(32 字节) key ?

最佳答案

您可以使用 SHA256 将 key 字符串 (test@gmail.com) 哈希为 256 位值。

MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(yourEmail.getBytes());
byte[] encryptionKey = md.digest();

关于java - AES-256 加密 : Generate 256bits(32bytes) key from my fixed string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24911604/

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