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();

            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();
      }

 

 

 

相关文章:

  • 2022-01-24
  • 2021-11-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-02
  • 2021-12-31
  • 2022-01-18
  • 2021-12-30
  • 2022-02-17
  • 2021-09-28
相关资源
相似解决方案