java md5
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
原文出处:http://blog.chenlb.com/2009/06/java-md5.html
java 版简易 md5 实现。我早期的 blog 记录过 md5 的java 实现(包括了算法),比较复杂:http://www.blogjava.net/chenlb/articles/83367.html。最近写的程序与 md5 相关,自一个方法的 md5 方便的类吧,看到了 使用 Java 生成 MD5 编码。其实sun本身实现了 md5 算法。我再把封装一下:
- package com.chenlb;
-
- import java.nio.charset.Charset;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
-
-
-
-
-
-
- public class MD5 {
- private MessageDigest md5;
- private char hexDigits[] = {
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
- public MD5() {
- try {
- md5 = MessageDigest.getInstance("MD5");
- } catch (NoSuchAlgorithmException e) {
- throw new RuntimeException("no such md5 algorithm!", e);
- }
- }
-
- public String hexString(byte[] source) {
- byte[] bs = md5.digest(source);
- char str[] = new char[16 * 2];
-
- int k = 0;
- for (int i = 0; i < 16; i++) {
-
- byte byte0 = bs[i];
- str[k++] = hexDigits[byte0 >>> 4 & 0xf];
-
- str[k++] = hexDigits[byte0 & 0xf];
- }
- return new String(str);
- }
-
- public String hexString(String source, Charset charset) {
- String md5Str = "";
- md5Str = hexString(source.getBytes(charset));
- return md5Str;
- }
-
- public static void main(String[] args) {
- MD5 md5 = new MD5();
-
- System.out.println(md5.hexString("blog.chenlb.com", Charset.forName("UTF-8")));
- }
- }
当然还可以像在 haogj 博客里的回复提到的那样,可以用 String.format("%02X", b)) ,但后来发现慢,不是一个数量级的,100倍的差距。可以换 hexString(byte[] source) 方法内容,试试:
- public String hexString(byte[] source) {
- byte[] bs = md5.digest(source);
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i<bs.length; i++) {
- String s = String.format("%02X", bs[i]);
- sb.append(s);
- }
- return sb.toString();
分享到:
相关推荐
解决Delphi 中文MD5签名和Java MD5签名不一致的问题。
java md5 加密后转为16进制
java md5 jar 有代码如下: /** * md5 加密 * @param str * @return */ public static String md5Encode(String str) { StringBuffer buf = new StringBuffer(); try { ...
js java MD5加密 解决中文不一致问题 验签 只有英文 数字的可以忽略了
java md5加密示例,包括页面,servlet和加密工具类
java md5 加密功能类,16 32位均支持。初次封类,如有不满意的地方,请大家谅解
java md5加密 解密
Java Md5加密工具类
java MD5 java MD5 java MD5 java MD5 java MD5 java MD5
java MD5密码加密.
MD5jar包 源码如下 public class MD5 { public static String getMD5( String content ) { try { MessageDigest digest = MessageDigest.getInstance( "MD5" ); digest.update( content.getBytes() ); return...
1、JAVA MD5加密,AES加密解决; 2、项目需求,根据用户ID,软件名称,时间,硬件ID生成随机6位码,用户ID是可逆的。 基本思路是,两位存储用户ID,其他四位随机加密码,然后再讲两位 和四位二次混淆加密。
java 上传文件MD5验证
java中的md5加密函数,已经封装成类和函数了,非常好用。
Java Md5字符串加密类代码分享,MD5是一个比较常见的字符串加密算法,在JAVA中应用也相当普遍,这个MD5算法类或许可以直接套用,代码中的关键部分带有注释 ,方便您的使用和学习。需要使用MD5对字符串加密的,那就...
MD5加密
一个JAVA开发的MD5加密方法。可以看看 :)
能直接在java的应用程序中使用的MD5加密实现的jar包, 调用方法:转化成MD5:MD5.getEncryptedPwd(user.getPassword()) MD5验证:MD5.validPassword(password, user.getPassword())
java MD5 校验
MD5加密类,Java对字符串加密,MD5加密方法