java - 在java中使用DES key 加密文本

标签 java encryption des

我正在尝试通过DES制作加密和解密程序。在此代码部分中,我正在创建一个 SecretKey

  Cipher desCipher;
  KeyGenerator keygenerator;
  SecretKey myDesKey; 
  try{
    keygenerator = KeyGenerator.getInstance("DES");
    myDesKey = keygenerator.generateKey();
    byte[] encoded = myDesKey.getEncoded();
    // convert secret key to string 
   String stringKey =Base64.encodeToString(myDesKey.getEncoded());

    // converting back from  string to secret key. 
    //its returning javax.crypto.spec.SecretKey object but i need com.sun.crypto.provider.DESKey object

   SecretKey originalKey = new SecretKeySpec(stringKey.getBytes(), 0, stringKey.length(), "DES"); 
      String text="hello how are you " 
     desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
    desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
    byte[] textEncrypted = desCipher.doFinal(text.getBytes());   

    System.out.println("text encrypted successfully");        

    }
    catch(Exception ex)
     {
       ex.printStackTrace();
     }

is throwing the exception 

java.security.InvalidKeyException:没有安装的提供程序支持此 key :(null)

最佳答案

您正在将 key 转换为 base-64,但不会再次将其转换回来。

关于java - 在java中使用DES key 加密文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19924657/

相关文章:

java - BufferedReader readLine 在使用 C 客户端和 Java 服务器时保持阻塞状态

c# - 哪些语言支持继承方法返回类型的协变?

c# - 在 .NET 中使用 OpenSSL 加密和解密文件

java - 在 JUNIT5 中的扩展之间共享存储数据

java - 获取 @RestControllerAdvice 中带注释的 @Async 方法抛出的异常

php - HTTPS 和加密数据库在共享主机中真的安全吗?

PHP加密SQL

c - 编译代码时出现LNK2019错误

Java 相当于 C# DESCrypto

c# - C#中简单的DES ECB加解密