java实现的MD5摘要算法完整实例
程序员文章站
2024-03-09 11:21:53
本文实例讲述了java实现的md5摘要算法。分享给大家供大家参考,具体如下:
package com.soufun.com;
import java.io.un...
本文实例讲述了java实现的md5摘要算法。分享给大家供大家参考,具体如下:
package com.soufun.com; import java.io.unsupportedencodingexception; import java.security.messagedigest; import java.security.nosuchalgorithmexception; /** * @author whd */ public class md5test { // md5 单向加密 public static void main(string[] args) throws nosuchalgorithmexception, unsupportedencodingexception { string str = "hellomd摘要算法开始"; system.out.println("原始值" + str); system.out.println("加密后的" + md5test.aftermd5(str)); string digest = md5test.aftermd5(str); system.out.println(digest.equals(md5test.aftermd5(str))); } public static string aftermd5(string str) throws nosuchalgorithmexception, unsupportedencodingexception { // 获取md5 加密对象,还可以获取sha加密对象 messagedigest md5 = messagedigest.getinstance("md5"); // 将输入的信息使用指定的编码方式获取字节 byte[] bytes = str.getbytes("utf-8"); // 使用md5 类来获取摘要,也就是加密后的字节 md5.update(bytes); byte[] md5encode = md5.digest(); stringbuffer buffer = new stringbuffer(); for (int i = 0; i < md5encode.length; i++) { // 使用&0xff 不足24高位,因为只占了8低位 int val = ((int) md5encode[i]) & 0xff; if (val < 16) { buffer.append("0"); } // 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 buffer.append(integer.tohexstring(val)); } return buffer.tostring(); } }
使用org.apache.commons.codec.digest.digestutilsorg.apache.commons.codec.digest.digestutils来实现md5加密
在maven中的配置:
<dependency> <groupid>commons-codec</groupid> <artifactid>commons-codec</artifactid> <version>1.4</version> </dependency>
这里注意1.2版本和1.4版本的区别很大,因为1.4中扩展了很多方法.
具体代码如下:
public static string aftermd5(string str){ try { string md5 = digestutils.md5hex(str.getbytes("utf-8")); return md5; } catch (unsupportedencodingexception e) { // todo auto-generated catch block e.printstacktrace(); } return null; }
ps:关于加密解密感兴趣的朋友还可以参考本站在线工具:
密码安全性在线检测:
高强度密码生成器:
http://tools.jb51.net/password/createstrongpassword
迅雷、快车、旋风url加密/解密工具:
在线散列/哈希算法加密工具:
在线md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:
在线sha1/sha224/sha256/sha384/sha512加密工具:
希望本文所述对大家java程序设计有所帮助。
上一篇: 在Java的Spring框架中配置Quartz的教程
下一篇: php验证码生成器