import org.apache.commons.codec.binary.Base32;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
private static String byteArrayToHexString(byte b[]) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++)
resultSb.append(byteToHexString(b[i])); return resultSb.toString();
} private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n += 256;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
} public static String md5(String origin, String charsetname) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
if (charsetname == null || "".equals(charsetname))
resultString = byteArrayToHexString(md.digest(resultString
.getBytes()));
else
resultString = byteArrayToHexString(md.digest(resultString
.getBytes(charsetname)));
} catch (Exception exception) {
}
return resultString;
} private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; public static String md5(String origin) {
return MD5Utils.md5(origin,"GBK");
} public static String md5(String origin,String key ,String charsetname) {
return MD5Utils.md5(origin+key,charsetname);
}
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
private static String byteArrayToHexString(byte b[]) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++)
resultSb.append(byteToHexString(b[i])); return resultSb.toString();
} private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n += 256;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
} public static String md5(String origin, String charsetname) {
String resultString = null;
try {
resultString = new String(origin);
MessageDigest md = MessageDigest.getInstance("MD5");
if (charsetname == null || "".equals(charsetname))
resultString = byteArrayToHexString(md.digest(resultString
.getBytes()));
else
resultString = byteArrayToHexString(md.digest(resultString
.getBytes(charsetname)));
} catch (Exception exception) {
}
return resultString;
} private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; public static String md5(String origin) {
return MD5Utils.md5(origin,"GBK");
} public static String md5(String origin,String key ,String charsetname) {
return MD5Utils.md5(origin+key,charsetname);
}
解决方案 »
- 诡异问题
- DateTimePicker ValueChanged相关问题
- FIREFOX浏览器是否支持asp.net的网站?
- openFileDialog 控件和 CheckBox 控件的问题
- C#MDI父窗体如何调用子窗体的控件?急用,求源代码,万分感谢!
- 如何获取DataGrid的header的width.height,top,left
- 求助:winform数据库是access,怎么找当前分类的所有子级
- 代码编译时没有错误 但是运行时却得不到编译想要的结果
- vs2010的智能提示总是打几个字后,就自动消失了,怎么办?
- 我的C#第一问,关于函数的参数
- 想做个花生分屏王一样的单屏多软件分屏的程序,有案例吗?
- C#socket 数据接收
{
try
{
var encoding = string.IsNullOrEmpty(charsetname) ? Encoding.UTF8 : Encoding.GetEncoding(charsetname);
using (var md5 = MD5.Create())
{
var hash = md5.ComputeHash(encoding.GetBytes(origin));
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
}
catch
{
}
return null;
}
c214d53c0ea64d9ca237ccbcd484d1d9
报错,不是受支持的编码名
c214d53c0ea64d9ca237ccbcd484d1d9
报错,不是受支持的编码名
using System.Linq;
using System.Security.Cryptography;
using System.Text;public class MD5Utils {
public static void Main(string[] args) {
Console.WriteLine(Md5("test", Encoding.UTF8));
} public static string Md5(string text, Encoding encoding)
{
using (var md5 = MD5.Create())
{
var hash = md5.ComputeHash(encoding.GetBytes(text));
return hash.Select(i => i.ToString("x2")).Aggregate("", (accu, next) => accu + next).ToLower();
}
}
}
{
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
MD5 md5 = new MD5CryptoServiceProvider();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(s);
byte[] result = md5.ComputeHash(inputBytes);
int j = result.Length; char[] str = new char[j * 2]; int k = 0;
for (int i = 0; i < j; i++) { byte byte0 = result[i]; str[k++] = hexDigits[byte0 >> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf]; }
return new String(str);
}
return MD5Utils.md5(origin+key,charsetname);
}英中翻译
origin: 原文
key: 密码
charsetName: 字符集名