网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  一个实现md5的简洁的java类     
  文章作者:未知  文章来源:水木森林  
  查看:97次  录入:管理员--2007-11-17  
 
  由于消息摘要唯一性和不可逆性的特点,所以不失为一种简单的常用的加密手段,比如你可以用md5来加密你的应用中的用户口令。
  
  package test;
  import java.security.messagedigest;
  /**
  * <p>title: </p>
  * <p>description: </p>
  * <p>copyright: copyright (c) 2003</p>
  * <p>company: </p>
  * @author unascribed
  * @version 1.0
  */
  
  public class stringutil {
  
  private final static string[] hexdigits = {
  "0", "1", "2", "3", "4", "5", "6", "7",
  "8", "9", "a", "b", "c", "d", "e", "f"};
  
  /**
  * 转换字节数组为16进制字串
  * @param b 字节数组
  * @return 16进制字串
  */
  
  public 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 + n;
  int d1 = n / 16;
  int d2 = n % 16;
  return hexdigits[d1] + hexdigits[d2];
  }
  
  public static string md5encode(string origin) {
  string resultstring = null;
  
  try {
  resultstring=new string(origin);
  messagedigest md = messagedigest.getinstance("md5");
  resultstring=bytearraytohexstring(md.digest(resultstring.getbytes()));
  }
  catch (exception ex) {
  
  }
  return resultstring;
  }
  
  public static void main(string[] args){
  system.err.println(md5encode("a"));
  }
  }
  
  在rfc 1321中,给出了test suite用来检验你的实现是否正确:
  
  md5 ("") = d41d8cd98f00b204e9800998ecf8427e
  md5 ("a") = 0cc175b9c0f1b6a831c399e269772661
  md5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
  md5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
  md5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
 
 
上一篇: java中的强大武器--对象的序列化    下一篇: 讲述在java中decorate的三种实现方法
  相关文档
java中正则表达式使用方法详解 11-16
专家为您详解java数据库基本操作 11-17
在java应用程序中创建图像 11-16
java动画及自动浏览图片程序的开发 11-17
分析java中乱码问题产生的根源 11-17
j2ee项目中如何组建开发团队 11-17
jbuilder应用技巧一则 11-17
开发webservice应用程序 11-16
effective java读书笔记之二 11-17
取余运算符 (%) 11-16
java 网络编程---i/o部分学习笔记整理1 11-17
通过 xquery/xpath 支持松散耦合 11-17
深探java.util.logging包 11-17
java中使用final修饰符需要注意的地方 11-17
java.util下的timer,timertask和quartz的比较 11-17
resin的配置文件一览 11-17
java中threadlocal的设计与使用 11-16
体验 java 5 的新增语言特性 11-17
sun java web server 能让攻击者远程执行任意命令 11-17
基于web2.0的ajax十大安全漏洞以及成因 11-16
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息