首页 > 解决方案 > MD5 TripleDES Ecryption in Java NoPadding Issue

问题描述

I need to encrypt data in Java using this "DESede/CBC/NoPadding" because in C# it will be decrypted like this:

C# Code

            MD5CryptoServiceProvider hashProvider = new MD5CryptoServiceProvider();
            TripleDESCryptoServiceProvider tripDES = new TripleDESCryptoServiceProvider();

            // MD5 the key
            byte[] tdeskey = hashProvider.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
            // Set Key
            tripDES.Key = tdeskey;
            // Set IV
            tripDES.IV = UTF8.GetBytes(iv);
            // Use CBC for mode
            tripDES.Mode = CipherMode.CBC;
            // Zero Padding
            tripDES.Padding = PaddingMode.Zeros;

But when I try to do it, I had this kind of error:

javax.crypto.IllegalBlockSizeException: Input length not multiple of 8 bytes

So I change it to DESede/CBC/PKCS5Padding. But now, C# can't read it since PaddingMode.Zeros is set on the code above.

Do you have any idea how can I encrypt it sticking on NoPaddingMode?

标签: javaencryptiontripledes

解决方案


推荐阅读