md5加密算法介绍以及java实现md5加密算法
我们平时做网站设计时候在用户名密码处,密码经常采用md5加密方式,这样即便数据库被其他人弄走仍然能保障下用户的隐私。本篇就简单介绍下md5加密算法以及用一个java实例实现md5加密。
操作方法
- 01
MD5算法是典型的消息摘要算法,其前身有MD2、MD3和MD4算法,它由MD4、MD3和MD2算法改进而来。 不论是哪一种MD加密算法,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。如果将这个128位的二进制摘要信息换算成十六进制,可以得到一个32位的字符串,因此我们加密完成后的16进制的字符串长度为32位。
- 02
下面我们将通过java代码来实现md的加密代码并进行测试。jdk自身所带的支持md2以及md5的加密实现。本篇都将介绍如何编写。首先我们在myeclipse首页导航菜单处点击File,然后选择new,然后选择Java Project。进入创建java项目界面。
- 03
然后在项目创建界面输入本次测试所用的项目名称:MdJDKUtil,选择JRE环境本篇选择为1.7,选择完毕后点击Finish。完成项目的创建。
- 04
然后右击项目,选择new,然后选择class。进入创建实体类界面。具体操作如下图所示。
- 05
然后在新建类界面,输入本次用的包名称:com.md,类名称为:md5JdkUtil,勾选自动生成main函数。以上信息填写完毕后,点击Finish,完成实体类的创建。具体操作如下图所示。
- 06
由于本篇中md加密后的信息最终以16进制输出,因此我们首先编写byte数组转换为16进制并以字符串形式展现。首先我们创建方法名称:convertByteToHexString,此方法要一个传入参数为byte数组,并最终返回String类型。具体代码实现如下图所示。
- 07
然后我们编写md2加密算法的实现。方法名称为:md2Jdk,此方法需要传入一个参数String(原始信息),返回为String(加密后信息)。此方法内加密核心主要利用了jdk自带的MessageDigest类,此类位于:java.security包下。具体实现代码如下图所示。
- 08
然后我们编写md5加密算法实现。方法名称为:md5Jdk,同样需要传入一个参数String(原始信息),返回为String(加密后信息)。此方法的核心方法同md2一样也是利用了MessageDigest类的方法。具体实现如下图所示。
- 09
下面我们编写测试类。在main函数内调用写好的两个加密方法:md2Jdk,md5Jdk。传入相同的参数hello jdk md。分布对加密后的信息进行输出。具体实现代码如下图所示。
- 10
最后我们运行程序查看结果。可以看到md2以及md5加密算法的结果,加密后信息长度都为32位16进制。由于此方法不可逆,因此没有解密方法。具体效果如下图。