C#

string target= "央行降息影响楼市:100万20年期房贷月供减少141元";
string result = Md5Helper.Md5Hex(aa);

//result ="98d59c461b6b40ae7cfe57c6cbdd3cc1"

java

String target= "央行降息影响楼市:100万20年期房贷月供减少141元";
String result = DigestUtils.md5Hex(aa);

//result ="98d59c461b6b40ae7cfe57c6cbdd3cc1"

对应 jar包为 commons-codec-1.6.jar

C#代码

public class Md5Helper
{
private static char[] toDigits = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};

public static string Md5Hex(string I_SourceArray)
{
string R_Result;

byte[] temp = Encoding.UTF8.GetBytes(I_SourceArray);
sbyte[] temp1 = Md5Helper.ByteArray2SByteArray(temp);
R_Result = Md5Hex(temp1);

return R_Result;
}

public static string Md5Hex(sbyte[] I_SourceArray)
{
string R_Result;

sbyte[] md5SByteArray = Md5Helper.Md5Encode(I_SourceArray);
char[] charArray = Md5Helper.EncodeHex(md5SByteArray);

R_Result = new string(charArray);
return R_Result;
}

private static sbyte[] Md5Encode(sbyte[] I_Source)
{
sbyte[] R_Result;

byte[] temp = Md5Helper.SByteArray2ByteArray(I_Source);
byte[] temp1 = new MD5CryptoServiceProvider().ComputeHash(temp);
R_Result = Md5Helper.ByteArray2SByteArray(temp1);

return R_Result;
}

private static char[] EncodeHex(sbyte[] data)
{
int l = data.Length;
char[] R_Result = new char[l << 1];
for(int i =0,j =0; i<l;i++)
{
R_Result[j++] = toDigits[Md5Helper.MoveByte((0xF0 & data[i]), 4)];
R_Result[j++] = toDigits[ 0x0F & data[i] ];
}
return R_Result;
}

private static int MoveByte(int value, int pos)
{
if(value<0)
{
string s = Convert.ToString(value, 2);
for(int i=0; i< pos; i++)
{
s = "0" + s.Substring(0, 31);
}
return Convert.ToInt32(s, 2);
}
else
{
return value >> pos;
}
}

private static sbyte[] ByteArray2SByteArray(byte[] I_SourceByte)
{
return I_SourceByte.Select(p => Md5Helper.Byte2SByte(p)).ToArray();
}

private static byte[] SByteArray2ByteArray(sbyte[] I_SourceByte)
{
return I_SourceByte.Select(p => Md5Helper.SByte2Byte(p)).ToArray();
}

private static sbyte Byte2SByte(byte I_SourceSByte)
{
sbyte R_Result;

if (I_SourceSByte < 128)
{
R_Result = (sbyte)I_SourceSByte;
}
else
{
R_Result = (sbyte)(I_SourceSByte - 256);
}
return R_Result;
}

private static byte SByte2Byte(sbyte I_SourceSByte)
{
byte R_Result;

if(I_SourceSByte <0)
{
R_Result = (byte)(I_SourceSByte + 256);
}
else
{
R_Result = (byte) I_SourceSByte ;
}
return R_Result;
}

}

最新文章

  1. SQL判断某列中是否包含中文字符、英文字符、纯数字 (转)
  2. linux下的三种解压文件的命令?
  3. ZOJ 3494 (AC自动机+高精度数位DP)
  4. shiyan2
  5. mysql loop if
  6. Unity3d 网络编程(一)(Unity3d内建网络Network介绍)
  7. vim 删除临时文件
  8. QT 绘制按钮 paintEvent enterEvent leaseEvent mouseEvent
  9. 请求http服务
  10. cocos2d-html5游戏图片资源选择
  11. NoSql数据库使用
  12. .Net程序员学用Oracle系列(15):DUAL、ROWID、NULL
  13. [算法题] Search in Rotated Sorted Array ii
  14. 201521123028 《java程序设计》 第7周学习总结
  15. 10.5Djang admin 管理工具
  16. Alpha版本展示
  17. WebApi使用swagger ui自动生成接口文档
  18. Codeforces Round #552 (Div. 3) 题解
  19. 【LG5021】[NOIP2018]赛道修建
  20. lintcode373 奇偶分割数组

热门文章

  1. Cassandra 介绍
  2. AMap公交线路查询
  3. IBM Power PC安装sysbench 执行mysql基准测试 --- sysbench安装
  4. Ubuntu1404 (2)
  5. oracle 分析函数
  6. 在iframe中使用cookie需要注意
  7. C#读取excel数据到datatable中
  8. 代码管理——如何连接Git Server,下载代码
  9. PIC32MZ tutorial -- External Interrupt
  10. js一个抽奖的例子