用vb.net进行三重加密,用java进行解密

用vb.net进行三重加密,用java进行解密,java,vb.net,encryption,tripledes,Java,Vb.net,Encryption,Tripledes,我正在为两个应用程序创建一个接口,它们将使用.txt文件中的加密文本进行通信。vb.net应用程序将加密,java将解密 vb代码 java代码 私有静态字符串_decrypt(字符串encryptedText,字符串secretKey)引发异常{ byte[] message = Base64.decodeBase64(encryptedText.getBytes("utf-8")); //byte[] message = encryptedText.getBytes("

我正在为两个应用程序创建一个接口,它们将使用.txt文件中的加密文本进行通信。vb.net应用程序将加密,java将解密

vb代码



java代码


私有静态字符串_decrypt(字符串encryptedText,字符串secretKey)引发异常{

    byte[] message = Base64.decodeBase64(encryptedText.getBytes("utf-8"));
    //byte[] message = encryptedText.getBytes("utf-8");

    MessageDigest md = MessageDigest.getInstance("SHA-1");
    byte[] digestOfPassword = md.digest(secretKey.getBytes("utf-8"));
    byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
    SecretKey key = new SecretKeySpec(keyBytes, "DESede");

    //Cipher decipher = Cipher.getInstance("DESede");
    Cipher decipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
    decipher.init(Cipher.DECRYPT_MODE, key);

    byte[] plainText = decipher.doFinal(message);

    return new String(plainText, "UTF-8");
}
但我得到了错误

at java.lang.ArrayIndexOutOfBoundsException: -17
at org.apache.commons.codec.binary.Base64.isBase64(Base64.java:137)
at org.apache.commons.codec.binary.Base64.discardNonBase64(Base64.java:478)
at org.apache.commons.codec.binary.Base64.decodeBase64(Base64.java:374)
at Test.MyDec._decrypt(MyDec.java:74)
at Test.MyDec.main(MyDec.java:33) 

当从base64解码时,我认为我们也需要
\u decrypt
方法,并包括生成异常的行。我添加了_decrypt函数我认为我们还需要
\u decrypt
方法,并包括生成异常的行。我添加了_decrypt函数
    byte[] message = Base64.decodeBase64(encryptedText.getBytes("utf-8"));
    //byte[] message = encryptedText.getBytes("utf-8");

    MessageDigest md = MessageDigest.getInstance("SHA-1");
    byte[] digestOfPassword = md.digest(secretKey.getBytes("utf-8"));
    byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
    SecretKey key = new SecretKeySpec(keyBytes, "DESede");

    //Cipher decipher = Cipher.getInstance("DESede");
    Cipher decipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
    decipher.init(Cipher.DECRYPT_MODE, key);

    byte[] plainText = decipher.doFinal(message);

    return new String(plainText, "UTF-8");
}
at java.lang.ArrayIndexOutOfBoundsException: -17
at org.apache.commons.codec.binary.Base64.isBase64(Base64.java:137)
at org.apache.commons.codec.binary.Base64.discardNonBase64(Base64.java:478)
at org.apache.commons.codec.binary.Base64.decodeBase64(Base64.java:374)
at Test.MyDec._decrypt(MyDec.java:74)
at Test.MyDec.main(MyDec.java:33)