java 和.net的MD5加密不一样?!

C#md5加密对应Java md5加密 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得。加密类型支持:1-16位的加密;3:base64加密加密后是一个字节类型的数组,这里要注意编码。加密后是一个字节类型的数组,这里要注意编码。)则格式后的字符是大写字符。 阅读详情

由于工作需要,要用.net的程序调用一个java编写的web service接口,接口的一个参数要求md5方式加密。

.net中的md5加密是很容易的,采用msdn中给出的方法:

 

可是,当输入的字符串是中文的时候,问题出现了,加密出来的字符串不一样:

 

输入 工作

java 8c87df93416ebdf251bcb6b328ec3c3b

.net 12e709e3a9a82b441b739a5c8ba035de

 

首先想到的是对中文的编码方式不一样,可是无论用utf8还是unicode结果都不同。

用google搜索 “java MD5 算法”找到的一篇文章解释了我的疑惑

http://blog.csdn.net/Peter_K/archive/2007/03/13/1527629.aspx

 

 

在.net中用同样的方式

 

这回结果一样

 

疑惑:这样在java中进行md5加密不知道是哪位大神的创造,java的String也有getBytes函数啊,为啥要把中文的多字节舍去呢?难道是因为getBytes()的默认结果是平台相关的,可getBytes可以指定编码格式啊,如getBytes("UTF-8"),我觉得这样得到的结果让人更加清楚。

幸好在goole的搜索中“java MD5 算法”排第一位,要不真要我困扰好久了。。。

 

把md5加密的结果记录如下:

 

输入

工作

输出

unicode:71626ce19b9ceee1cd9488793f3c282e

utf8:9a018b21ab114a51dd7b5979198a941b

default:12e709e3a9a82b441b739a5c8ba035de

char2byte:8c87df93416ebdf251bcb6b328ec3c3b

 

java与c#MD5加密方法得到一致解决办法 java与c#MD5加密方法得到一致解决办法,MD5加密后得到一致结果 立即下载

相关推荐

Java.Net中的MD5加密同之处及代码

第一次写博客,写的好的地方请见谅,决定开始写博客主要是想记录下每天所学的东西,同时也希望有可能的话给像我一样的初学者的朋友一点帮助,因为我也是初学者,遇到的很多问题可能某些朋友也会遇到,多说了,开始写了。 今天开发中遇到个小问题,就是.netMD5加密后的结果与Java加密后的结果一样,于是百度google了很久,没找到什么好的解决方法,搜到的大多是因为中文字符加密同,此处这个我就...

binwu95042一个悲情的人... 408

关于js md5加密Java md5加密一致问题解决

1.前端: md5(encodeURIComponent(str)); .2.后台:DigestUtils.md5Hex(URLEncoder.encode(src)); 除此之外,还有问题,请仔细检查自己传入进去的参数是否是你想要的的字符串,更改一点, 都有可能导致md5()结果一致。 ...

qq_42727102的博客 2978

彻底解决JAVA.net MD5加密中文一致问题

彻底解决JAVA.net MD5加密中文一致问题   最近开发遇到.netJAVAMD5加密中文一样的问题 JAVAMD5加密方法如下: public synchronized static final byte[] toMd5(String data,String encodingType) {      MessageDigest digest = null

yjg428的专栏 1万+

java代码中md5加密与mysql直接加密结果一致,java .netMD5加密一样?!

由于工作需要,要用.net的程序调用一个java编写的web service接口,接口的一个参数要求md5方式加密.net中的md5加密是很容易的,采用msdn中给出的方法:// Hash an input string and return the hash as// a 32 character hexadecimal string.static string getMd5Hash(stri...

weixin_39575648的博客 779

.NetJava中的MD5加密开发的一致性

1、C#.Net版Code/**////<summary>///MD5加密///</summary>///<paramname="s">字符串</param>///<paramname="encoding">字符集编码</param>...

weixin_30446613的博客 931

[加密]JAVA.NET加密结果相同的MD5算法

最近用到MD5加密算法 看到网上有许多人说.NETJAVA加密结果一样 综合了一下网上的解决方法 得出以下结论: C#的默认的Byte范围JAVA一样, 所以在JAVA代码里把Byte改成16位的,再加密JAVA代码: public String MD5(String s) { //16进制下数字到字符的映射数组 ch

lc775102429的博客 1657

android md5加密.net md5加密同,在同环境下MD5加密相同字符串,密文一样的问题...

这是昨天做一个接口对接时遇到的一个问题。下面是md5加密的算法public static String md555(String plainText) throws UnsupportedEncodingException {byte[] secretBytes = null;try {secretBytes = MessageDigest.getInstance("md5").digest(pl...

weixin_33484711的博客 563

.net, java MD5 加密 互换

1、.net md5 加密 public static String Md5(String input, string encodName = "utf-8") { if (String.IsNullOrEmpty(input)) return...

chicuogua4873的博客 481

彻底解决JAVA.net MD5加密

最近开发遇到.netJAVAMD5加密中文一样的问题 JAVAMD5加密方法如下: public synchronized static final byte[] toMd5(String data,String encodingType) {      MessageDigest digest = null;      if (digest == null) {      try { 

1158

.NETJAVA同等加密方法,MD5DES对称加密记录

.NETJAVA同等加密方法,MD5DES对称加密记录 原文:.NETJAVA同等加密方法,MD5DES对称加密记录C#版: using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApplication1...

weixin_30492601的博客 216

ASP.NET实现MD5加密算法

其实在.net 有一个最简单实现MD5的方法                /// MD5加密        ///         /// 被加密字符串        /// 加密后的字符串        public static string MD5(string toCryString)        {            return FormsAuthentication.Hash

piscailei@blog.csdn.net 2761

ASP.netmd5加密码的方法

_ArticleContent1_lblContent> void Page_Load(Object sender,EventArgs e){ //获取要加密的字段,并转化为Byte[]数组 byte[] data=

johncools的博客 3690

java.net一些通用的加密算法

java.NET非对称加密MD5算法)            java代码: public static String hashMD5(String data) { byte[] bytes = null; try { bytes = data.getBytes("UTF-8"); }

nomousewch的专栏 4859

java实现MD5加密

之前需要将一个.net项目迁移到java平台,哥一听这个,就懵了,没搞过.net啊,各种坑,各种心酸无力,在此就表了。.netjava语法差多,凭着我的执着与合理安排,最终项目迁移成功。在此过程中,接触了各种加解密算法,也算是一种收获,本着事后总结的原则,特写此主题文章。 MD5主要用在验签,与此用途相类似的还有RSA。特别是涉及到金额以及一些重要参数传输上,为了避免参数被拦截篡改,故

duguwuyi的专栏 793

java.NET同步的MD5加密算法(一)

package com.tecamo.servu.junittest; import java.security.MessageDigest; public class MD5Ecnrypt { //将字符串加密MD5,32位16进制字串,如"3031209"转成"e043a49740adde7aae4f34818c52528e" public sta

doranwin 1008

C#,Java MD5withRSA算法

公司最近对接的API需要将发到服务商那边的数据进行加密,加密使用的算法是MD5withRSA,已经提供了JavaMD5withRSA算法,但公司使用的是.Net开发的,在此做个记录. 需要添加一个名为BouncyCastle的NuGet程序包,公司内部使用的是itextsharp.dll组件,其实itextsharp.dll中已经包含了BouncyCastle,实现效果是一样.NET代码 /// <summary> /// 数据加密(通过私钥进行加密) /// </summary&g

qq_41946341的博客 1221

.net md5 java 偏移量_JavaC# MD5加密比较

最近使用java 开发一个之前用C#开发的项目,当项目将要结束的时候,数据迁移出现了一个问题,那就是用户信息的迁移。之前C#版的项目是使用MD5+Base64加密的密码,加密过程太过于复杂,导致两者用户数据能兼容。查看了很多方法,终于找到了解决方案,在此共享一下。1.C# 加密过程处理(1)将字符串转化为UTF-8 格式字节数组代码1publicbyte[]GetUTF8(stringcon...

weixin_31147757的博客 274
上一篇: vs2005中关闭c++的IntelliSense.(智能感知)
cvsws
博客等级 码龄22年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值