public static String getDigestStr(String info) {
try {
byte[] res = info.getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] result = md.digest(res);
for (int i = 0; i < result.length; i++) {
md.update(result[i]);
}
byte[] hash = md.digest();
StringBuffer d = new StringBuffer("");
for (int i = 0; i < hash.length; i++) {
int v = hash[i] & 0xFF;
if (v < 16) {
d.append("0");
}
d.append(Integer.toString(v, 16).toUpperCase());
}
return d.toString();
} catch (Exception e) {
return null;
}
}
感谢!
try {
byte[] res = info.getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] result = md.digest(res);
for (int i = 0; i < result.length; i++) {
md.update(result[i]);
}
byte[] hash = md.digest();
StringBuffer d = new StringBuffer("");
for (int i = 0; i < hash.length; i++) {
int v = hash[i] & 0xFF;
if (v < 16) {
d.append("0");
}
d.append(Integer.toString(v, 16).toUpperCase());
}
return d.toString();
} catch (Exception e) {
return null;
}
}
感谢!
{
try
{
byte[] res = System.Text.Encoding.UTF8.GetBytes(info);
MD5CryptoServiceProvider md = new MD5CryptoServiceProvider();
byte[] result = md.ComputeHash(res); StringBuilder sbuilder = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
int v = result[i] & 0xFF;
if (v < 16)
{
sbuilder.Append("0");
}
sbuilder.Append(Convert.ToString(v, 16).ToUpper());
}
return sbuilder.ToString(); }
catch
{
return null;
}
}
C#加密后:CD12F4D32925259B160A3D2AC631B873
Java加密后:D45602626A3FC3A23C5D0D1E0990E0A0还是不一致呢!!
md.update(result[i]);
}
byte[] hash = md.digest();怎么把这段反映成C#呢???
请再给翻译一下,多谢了!
md.update(result[i]);
}
byte[] hash = md.digest();怎么把这段反映成C#呢???
{
byte[] b = Encoding.Default.GetBytes(str);
b = new MD5CryptoServiceProvider().ComputeHash(b);
StringBuilder ret = new StringBuilder();
for (int i = 0; i < b.Length; i++)
ret.Append(b[i].ToString("x").PadLeft(2, '0'));
return ret.ToString();
}
md.update(result[i]);//使用指定的字节更新摘要
}
byte[] hash = md.digest();//完成哈希计算
根据java里的解释好象不是移位吧!
和之前的代码结果是一样的,还是和java的不一致!
{
try
{
byte[] res = System.Text.Encoding.Default.GetBytes(info);
MD5CryptoServiceProvider md = new MD5CryptoServiceProvider();
byte[] result = md.ComputeHash(res);
byte[] hash = md.ComputeHash(result);
StringBuilder sbuilder = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
int v = hash[i] & 0xFF;
if (v < 16)
{
sbuilder.Append("0");
}
sbuilder.Append(Convert.ToString(v, 16).ToUpper());
}
return sbuilder.ToString();
}
catch
{
return null;
}
}