2022年java-MD开发教程 .pdf
《2022年java-MD开发教程 .pdf》由会员分享,可在线阅读,更多相关《2022年java-MD开发教程 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、javabean:MD5 的Java Bean 实现疯狂代码 http:/ MD5 介绍 MD5 全称是 Message-Digest Algorithm 5在90年代初由 MIT计算机科学实验室和 RSA Data SecurityInc 发明经 MD2、MD3 和MD4 发展而来 Message-Digest 泛指字节串(Message)Hash变换就是把个任意长度字节串变换成定长大整数请注意我使用了“字节串”而不是“串”这个词是这种变换只和字节值有关和集或编码方式无关 MD5 将任意长度“字节串”变换成个128bit 大整数并且它是个不可逆串变换算法换句话说就是即使你看到源和算法描述也无
2、法将个MD5 值变换回原始串从数学原理上说是原始串有无穷多个这有点象不存在反数学 MD5 典型应用是对段 Message(字节串)产生fingerpr(指纹)以防止被“篡改”举个例子你将段话写在个叫readme.txt 文件中并对这个 readme.txt 产生个 MD5 值并记录在案然后你可以传播这个文件给别人别人如果修改了文件中任何内容你对这个文件重新计算MD5 时就会发现如果再有个第 3 方认证机构用 MD5 还可以防止文件作者“抵赖”这就是所谓数字签名应用 MD5 还广泛用于加密和解密技术上在很多操作系统中用户密码是以MD5 值(或类似其它算法)方式保存 用户Login 时候系统是把用
3、户输入密码计算成MD5 值然后再去和系统中保存MD5 值进行比较而系统并不“知道”用户密码是什么 些黑客破获这种密码思路方法是种被称为“跑字典”思路方法有两种思路方法得到字典种是日常搜集用做密码串表另种是用排列组合思路方法生成先用MD5 计算出这些字典项 MD5 值然后再用目标 MD5 值在这个字典中检索 即使假设密码最大长度为8同时密码只能是字母和数字共26+26+10=62 个排列组合出字典项数则是P(62,1)+P(62,2).+P(62,8)那也已经是个很天文数字了存储这个字典就需要TB 级磁盘组而且这种思路方法还有个前提就是能获得目标账户密码MD5 值情况下才可以 在很多电子商务和社
4、区应用中管理用户Account是种最常用基本功能尽管很多Application Server提供了这些基本组件但很多应用开发者为了管理更大灵活性还是喜欢采用关系数据库来管理用户懒惰做法是用户密码往往使用明文或简单变换后直接保存在数据库中因此这些用户密码对软件Software 开发者或系统管理员来说可以说毫无保密可言本文目是介绍MD5Java Bean 实现同时给出用 MD5 来处理用户 Account密码例子这种思路方法使得管理员和设计者都无法看到用户密码尽管他们可以化它们但重要点是对于用户密码设置习惯保护 有兴趣读者可以从这里取得MD5 也就是 RFC 1321 文本http:/www.ie
5、tf.org/rfc/rfc1321.txt 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -实现策略 MD5 算法在 RFC1321 中实际上已经提供了 C实现我们其实马上就能想到至少有两种用Java实现它思路方法第种是用 Java语言重新写整个算法或者再说简单点就是把C改写成 Java第 2 种是用 JNI(Java Native Interface)来实现核心算法仍然用这个C用Java类给它包个壳 但我个人认为 JNI应该是 Java为了解决某类问题时没有办法办法(比如和操作系统或 I/O 设备密切相关应用)同时为了提供和其它语言互操作性个手段使用JNI带来最大问
6、题是引入了平台依赖性打破了SUN 所鼓吹“次编写到处运行”Java好处因此我决定采取第种思路方法来和大家起尝试下“次编写到处运行”好处 2 来检验下Java 2 现在对于比较密集计算效率问题 实现过程 限于这篇文章篇幅同时也为了更多读者能够真正专注于问题本身我不想就某种Java集成开发环境来介绍这个Java Bean制作过程介绍个思路方法时我发现步骤和命令很清晰我相信有任何种Java集成环境 3 天以上经验读者都会知道如何把这些代码在集成环境中编译和运行用集成环境讲述问题往往需要配很多屏幕截图这也是我直对集成环境很头疼原因我使用了个普通文本编辑器同时使用了Sun公司标准 JDK 1.3.0 f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年java-MD开发教程 2022 java MD 开发 教程
限制150内