1.c#实现

    /*
*加密生成MD5
*/
public static String MD5(string s)
        {
char[] hexDigits = { '', '', '', '', '', '', '', '', '', '', 'a', 'b', 'c', 'd', 'e', 'f' };
MD5 md5 = new MD5CryptoServiceProvider();
byte[] inputBytes = System.Text.Encoding.Default.GetBytes(s);
byte[] result = md5.ComputeHash(inputBytes);
int j = result.Length;
char[] str = new char[j * ];
int k = ;
for (int i = ; i < j; i++)
{
byte byte0 = result[i];
str[k++] = hexDigits[byte0 >> & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
}

2.Java实现

public final class DefaultPasswordEncoder {

    private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', 'a', 'b', 'c', 'd', 'e', 'f'}; private final String encodingAlgorithm="MD5"; private final String characterEncoding="UTF-8"; /*
*加密生成MD5
*/
public String encode(final String password) {
if (password == null) {
return null;
} try {
MessageDigest messageDigest = MessageDigest
.getInstance(this.encodingAlgorithm); if (StringUtils.hasText(this.characterEncoding)) {
messageDigest.update(password.getBytes(this.characterEncoding));
} else {
messageDigest.update(password.getBytes());
} final byte[] digest = messageDigest.digest(); return getFormattedText(digest);
} catch (final NoSuchAlgorithmException e) {
throw new SecurityException(e);
} catch (final UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
} /**
* Takes the raw bytes from the digest and formats them correct.
*
* @param bytes the raw bytes from the digest.
* @return the formatted bytes.
*/
private String getFormattedText(final byte[] bytes) {
final StringBuilder buf = new StringBuilder(bytes.length * 2); for (int j = 0; j < bytes.length; j++) {
buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
}
return buf.toString();
} }

最新文章

  1. css单位:em,rem解释
  2. 地理围栏算法解析(Geo-fencing)
  3. Oracle中创建视图
  4. UVA 11294 Wedding(2-sat)
  5. VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧
  6. Java [leetcode 34]Search for a Range
  7. tp28xx port pin (open-drain )and (push-pull) 和open collector)
  8. 路过Haxe
  9. maven工程莫名其妙只在项目名称那里有一个红叉
  10. 【开发技术】json
  11. 通用权限管理系统之权限菜单zTree树的展示及移动的处理方法
  12. Task 的用法
  13. SQL SERVER 死锁
  14. Mysql 中的MVCC原理,undo日志的依赖
  15. cocos2dx 屏幕分辨率
  16. 【转】Python-面向对象进阶
  17. socket之基础
  18. android开发(34) 自定义 listView的分割线( 使用xml drawable画多条线)
  19. redis -clock_gettime问题
  20. 网络I/O模型--03非阻塞模式(ServerSocket与Socket的超时处理)--解除accept()、 read()方法阻塞

热门文章

  1. seam remote 返回的map结构
  2. mysql异地备份方案经验总结
  3. Python学习笔记——Matplot库
  4. Beauty of Array ZOJ - 3872(思维题)
  5. Entertainment Box Gym100781E(数据结构+贪心)
  6. 6 DataFrame处理丢失数据--数据清洗
  7. 【Codeforces 158A】Next Round
  8. 暑假集训D21总结
  9. Android:创建无标题栏的Activity
  10. 关于压缩软件gzip和xz的简单对照