java - 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?
解决方案
推荐阅读
- android - 如何将图像转换为字节数组
- unity3d - Unity - 位置工具包 - onLocationAvailability 方法每次都返回 false
- javascript - 单击一次后如何删除onclick功能
- python - 将两个列表压缩到字典中时,是否可以为一个键指定多个值?
- php - 如何在 Laravel 8 中调用列数据库中的特定数据
- scala - sbt 部署/发布失败,java 12 启用预览功能 JavadocGeneration 失败
- sql - 如何在sql中使用pivot到多列
- javascript - b-table 中的可单击列在第一次单击时未注册排序图标
- c# - 用 AppendLine 删除一个额外的空行?
- xml - XSLT 根据条件拆分 XML 文件