MD5加密 java c#
C#与java对字符串进行加密,往往会出现结果不一致的情况,经过搜集,下面的两个方法是对的,并且结果一致。
C#
private string getMd5Str(string source){
string result = "";
MD5 m = new MD5CryptoServiceProvider();
byte[] s = m.ComputeHash( UnicodeEncoding.UTF8.GetBytes( source ) );
result= BitConverter.ToString( s ).Replace( "-" , "" );
m.Clear();
string result = "";
MD5 m = new MD5CryptoServiceProvider();
byte[] s = m.ComputeHash( UnicodeEncoding.UTF8.GetBytes( source ) );
result= BitConverter.ToString( s ).Replace( "-" , "" );
m.Clear();
return result;
}
java
public static String getMD5Str(String str)
{
MessageDigest messageDigest=null;
try
{
messageDigest=MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
}
catch(NoSuchAlgorithmException e)
{
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
}
catch(UnsupportedEncodingException e)
{
e.printStackTrace();
}
byte[] byteArray=messageDigest.digest();
StringBuffer md5StrBuff=new StringBuffer();
for(int i=0;i<byteArray.length;i++)
{
if(Integer.toHexString(0xFF&byteArray[i]).length()==1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF&byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF&byteArray[i]));
}
return md5StrBuff.toString();
}
{
MessageDigest messageDigest=null;
try
{
messageDigest=MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
}
catch(NoSuchAlgorithmException e)
{
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
}
catch(UnsupportedEncodingException e)
{
e.printStackTrace();
}
byte[] byteArray=messageDigest.digest();
StringBuffer md5StrBuff=new StringBuffer();
for(int i=0;i<byteArray.length;i++)
{
if(Integer.toHexString(0xFF&byteArray[i]).length()==1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF&byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF&byteArray[i]));
}
return md5StrBuff.toString();
}