赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

I/O及网络--MD5加密及Java的实现方式

发布时间:2008.01.10 04:53     来源:赛迪网    作者:gui_jq

首先
   我看到很多贴子,上面描述MD5加密解密等话题,因此写此文章为了把MD5加密问题简单的说个透彻,并且给大家已经实践过的代码。

其次
   MD5加密并不是把原文加密,这个大家得注意,既然没有把原文加密何来的解密呢?简直是个笑话。MD5的用途就是把一段原文数据通过一定的算法生成16字节的密文,通过这个密文我们可以检查原文的数据是否被修改过。常用在网络中明文数据传输,防止传输过程中内容被恶意修改。典型的应用协议为radius,radius协议中有16byte就是MD5所留的,把用户的密码加在报文尾部进行MD5,把结果存在网络中,所以明文部分看不到用户的密码,当服务器收到此包,用同样的方法进行MD5,如果加密出来的16byte一样,说明是有效的未被恶意修改的网络包。

最后
附上实现的代码

  1. import java.security.*;
  2. public class MD5 {
  3.   /**
  4.    * MD5
  5.    *
  6.    * @author Dreamer
  7.    */
  8.   public MD5() {
  9.   }
  10.   public static byte[] md5(byte[] in) {
  11.     MessageDigest md = null;
  12.     byte[] out = new byte[16];
  13.     try {
  14.       md = MessageDigest.getInstance("MD5");
  15.     }
  16.     catch (NoSuchAlgorithmException ex) {
  17.       System.out.println(ex.toString());
  18.     }
  19.     md.reset();
  20.     md.update(in);
  21.     out = md.digest();
  22.     return out;
  23.   }
  24.   public static byte[] md5(byte[] in, int len) {
  25.     MessageDigest md = null;
  26.     byte[] out = new byte[16];
  27.     try {
  28.       md = MessageDigest.getInstance("MD5");
  29.     }
  30.     catch (NoSuchAlgorithmException ex) {
  31.       System.out.println(ex.toString());
  32.     }
  33.     md.reset();
  34.     md.update(in, 0, len);
  35.     out = md.digest();
  36.     return out;
  37.   }

       (责任编辑:包春林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 设计模式之--Decorator模式、BUG和AOP (01-09) · 浅析Spring2.0中新的Bean类型实现原理 (01-09)
· J2SE综合--Apache Commons工具集简介 (01-09) · Java入门--深入讨论JAVA规则开发篇 (01-09)
· 基础:int 和 String 互相转换的多种方法 (01-09) · J2EE综合:谈谈Java Web开发的学习路径 (01-09)
· Java 5.0的垃圾收集 (01-09) · 浅析设计模式中的Iterator迭代器 (01-09)
· 设计模式之Proxy (01-08)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网银交易收费 我国银行业如何达国际化标准
· 家庭信息化普及率提高 网上缴费成为新时尚
· 五条黄金准则能够让CIO巧妙加薪 CIO焦虑调查
· 网上书店解决方案 深圳边检指挥中心ITSM项目
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统