gpt4 book ai didi

java - 尝试使用 Secretkey 解密数据时返回错误

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

我目前使用 DES 作为加密/解密数据的实践方法(我知道这不是行业惯例!)并且我在解密时遇到错误(这里是输出):

java.security.InvalidKeyException: Parameters missing
at com.sun.crypto.provider.CipherCore.init(CipherCore.java:469)
at com.sun.crypto.provider.DESCipher.engineInit(DESCipher.java:186)
at javax.crypto.Cipher.implInit(Cipher.java:802)
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
at javax.crypto.Cipher.init(Cipher.java:1249)
at javax.crypto.Cipher.init(Cipher.java:1186)
at CryptoPrac.Encrypt_Decrypt.Decrypt(Encrypt_Decrypt.java:68)
at CryptoPrac.Crypto_Main.main(Crypto_Main.java:35)

这是我的代码:

public byte[] Decrypt(byte[] encrypted)
{
try
{
KeyStore keyStore = KeyStore.getInstance("JCEKS");
keyStore.load(new FileInputStream("output.jceks"), "password".toCharArray());
SecretKey key = (SecretKey) keyStore.getKey("key", "password".toCharArray());
System.out.println(key.toString());
Cipher deCipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
deCipher.init(Cipher.DECRYPT_MODE, key);

return deCipher.doFinal(encrypted);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return null;
}

我认为我尝试将 getKey 转换为 key 可能是个问题,但我不确定如何做( key 作为 key 存储在 keystore 中,但当我不这样做时它会返回错误把它放在那里)。

编辑:我的引用库中有策略 .jars,因为我认为它们未被识别可能是个问题。

最佳答案

当您使用init() 方法初始化deCipher 时,IV 是必需的第三个参数。取决于原始字符串的加密方式将决定您如何获取此值。

关于java - 尝试使用 Secretkey 解密数据时返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50765275/

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