- java和.NET非对称加密(MD5算法)
java代码:
public static String hashMD5(String data)
{
byte[] bytes = null;
try
{
bytes = data.getBytes("UTF-8");
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
MessageDigest digest = digests.get("MD5");
digest.update(bytes);
StringBuilder buf = new StringBuilder(bytes.length * 2);
int i;
for (i = 0; i < bytes.length; i++)
{
if (((int) bytes[i] & 0xff) < 0x10)
{
buf.append("0");
}
buf.append(Long.toString((int) bytes[i] & 0xff, 16));
}
return buf.toString();
}
.NET代码:
public string getMd5Hash(string input)
{
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
- java和.NET非对称加密(SHA256算法)
Java代码:
public static String hashSHA256(String data)
{
byte[] bytes = null;
try
{
bytes = data.getBytes("UTF-8");
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
MessageDigest digest = digests.get("SHA256");
digest.update(bytes);
StringBuilder buf = new StringBuilder(bytes.length * 2);
int i;
for (i = 0; i < bytes.length; i++)
{
if (((int) bytes[i] & 0xff) < 0x10)
{
buf.append("0");
}
buf.append(Long.toString((int) bytes[i] & 0xff, 16));
}
return buf.toString();
}
.Net代码
public string SHA256Hash(string input)
{
SHA256 sha256 = new SHA256Managed();
byte[] data = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
sha256.Clear();
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}