gpt4 book ai didi

java - 如何在java中使用3DES加密/解密文本字符串?

转载 作者:行者123 更新时间:2023-12-02 00:54:09 24 4
gpt4 key购买 nike

Possible Duplicate:
How do I use 3des encryption/decryption in Java?

如何在 Java 中使用 3DES 加密/解密文本字符串?

<小时/>

我找到了答案。当我问这个问题时没有出现重复的问题。

How do I use 3des encryption/decryption in Java?

最佳答案

来自旧代码:

    public void testSymCypher(SecretKey k, String str)
throws BadPaddingException, IllegalBlockSizeException,
InvalidAlgorithmParameterException, InvalidKeyException,
NoSuchAlgorithmException, NoSuchPaddingException
{
Cipher cip = Cipher.getInstance("DESede/CBC/PKCS5Padding");
cip.init(Cipher.ENCRYPT_MODE,k);
byte[] ciphered = cip.doFinal(str.getBytes());
byte iv[] = cip.getIV();

// printing the ciphered string
printHexadecimal(ciphered);

IvParameterSpec dps = new IvParameterSpec(iv);
cip.init(Cipher.DECRYPT_MODE,k,dps);
byte[] deciphered = cip.doFinal(ciphered);

// printing the deciphered string
printHexadecimal(deciphered);
}

注意 Java JDK 6 中提供了 DESede 的其他用法:

  • DESede/CBC/NoPadding (168)
  • DESede/CBC/PKCS5Padding (168)

还有 ECB 模式可用(但要小心不要使用两次!!),在这种情况下您不需要使用 iv 部分:

  • DESede/ECB/NoPadding (168)
  • DESede/ECB/PKCS5Padding (168)

为 DESede 生成 key :

    KeyGenerator generatorDes = KeyGenerator.getInstance("DESede");
SecretKey skaes = generatorDes.generateKey();

最后我推荐阅读this document如果您需要从事 Java 和密码学工作,请从 SUN 获取

关于java - 如何在java中使用3DES加密/解密文本字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1645747/

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