[加密]JAVA与.NET加密结果相同的MD5算法
2016-08-11 13:47
232 查看
最近用到MD5加密算法
看到网上有许多人说.NET和JAVA的加密结果不一样
综合了一下网上的解决方法
得出以下结论:
C#的默认的Byte范围和JAVA不一样,
所以在JAVA代码里把Byte改成16位的,再加密。
JAVA代码:
public String MD5(String s) {
//16进制下数字到字符的映射数组
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
看到网上有许多人说.NET和JAVA的加密结果不一样
综合了一下网上的解决方法
得出以下结论:
C#的默认的Byte范围和JAVA不一样,
所以在JAVA代码里把Byte改成16位的,再加密。
JAVA代码:
public String MD5(String s) {
//16进制下数字到字符的映射数组
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return null;
}
}
相关文章推荐
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同,如何保证JAVA MD5加密结果在不同的环境下都相同
- Java md5加密 控制台传入与web传入参数 结果不匹配 || 相同字符串加密结果不同,如何保证JAVA MD5加密结果在不同的环境下都相同
- Java 二次MD5 32位小写加密算法与php页面加密结果相同
- Java 二次MD5 32位小写加密算法与php页面加密结果相同
- Java与Node.js利用AES加密解密出相同结果的方法示例
- OC的DES加密,使与java的Cipher类用DES/CBC/PKCS5Padding方式的加密结果相同
- Java程序和Oracle数据库调用相同的SQL查询语句,结果却不同
- mysql aes与java aes实现相同密码相同结果的代码
- java加密解密——MD5算法和DES算法
- Java与.Net环境下RSA加密解密交互不成功的问题解决【续】
- .NET 与 Java DES 加密/解密 互通 方法
- AES加密算法在linux下相同输入每次加密结果都不同的问题
- [C# & Java].Net加密(DESCryptoServiceProvider) VS. Java解密
- X.590 sha1-DSA证书加密在Java平台与.net平台间的互通
- java和.net 交互加密解密
- android平台下的aes加密和java平台下的运行结果不同的解决办法
- .NET语言中a += b与a = a + b的编译结果必然相同
- Java与.Net环境下RSA加密解密交互不成功的问题解决
- DES中两个不同密钥加密同一明文得出相同结果