加密:DigestUtils与java MessageDigest
2015-05-08 20:44
295 查看
1.使用Spring的DigestUtils
md5Hex: 4cb9c8a8048fd02294477fcb1a41191a
缺点为:只提供了MD5的加密算法
2.使用commons-codec
3.java MessageDigest
public class StringUtilTest { static final String TARGET = "changeme"; /* * 不可逆算法 MD5 */ @Test public void Md5() { String str = DigestUtils.md5DigestAsHex(TARGET.getBytes()); System.out.println("md5Hex: "+str); } }结果为:
md5Hex: 4cb9c8a8048fd02294477fcb1a41191a
缺点为:只提供了MD5的加密算法
2.使用commons-codec
public class UtilTest { static final String TARGET = "changeme"; /* * 不可逆算法 MD5 */ @Test public void Md5() { String str = DigestUtils.md5Hex(TARGET); System.out.println("md5Hex: "+str); } /* * 不可逆算法 SHA1 */ @Test public void Sha1() { String str = DigestUtils.shaHex(TARGET); print("shaHex: "+str); str = DigestUtils.sha256Hex(TARGET); print("sha256Hex: "+str); str = DigestUtils.sha384Hex(TARGET); print("sha384Hex: "+str); str = DigestUtils.sha512Hex(TARGET); print("sha512Hex: "+str); } /* * 可逆算法 BASE64 */ @Test public void Base64() { //加密 byte[] b = Base64.encodeBase64(TARGET.getBytes(), true); String str = new String(b); print("BASE64: "+str); //解密 byte[] b1 = Base64.decodeBase64(str); print("解密之后内容为: "+new String(b1)); } public void print(Object obj) { System.out.println(obj); } }
3.java MessageDigest
@Test public void test() { try { String password = "12345psw"; //MD5表示加密算法,可以选择其他参数,如SHA-1等 MessageDigest digest = MessageDigest.getInstance("MD5"); //先调用update,再调动digest digest.update(password.getBytes()); byte[] byteResult = digest.digest(); //因为加密完为字节数组,需要转化为字符串 String result = convertbyte2String(byteResult); System.out.println(result); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } //将字节数组转化为字符串 private String convertbyte2String(byte[] byteResult) { char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; //4位代表一个16进制,所以长度需要变为原来2倍 char[] result = new char[byteResult.length*2]; int index = 0; for(byte b:byteResult) { //先转换高4位 result[index++] = hexDigits[(b>>>4)& 0xf]; result[index++] = hexDigits[b& 0xf]; } return new String(result); }
相关文章推荐
- 加密:Java利用MessageDigest获取字符串或文件MD5详解
- 【MD5加密】用java.security.MessageDigest(md5)对信息加密
- java.security.MessageDigest 信息加密
- 使用java.security.MessageDigest类来实现MD5、SHA加密
- Java利用MessageDigest提供的MD5算法加密字符串或文件
- JavaScript MD5 与 Java MessageDigest 加密后的值相同
- JavaScript MD5 与 Java MessageDigest 加密后的值相同
- java MessageDigest加密 md5 sha
- java.security.MessageDigest的使用
- java.security.MessageDigest的使用,MD5,安全密令
- java MD5(Message Digest Algorithm 5)加密算法
- java.security.MessageDigest的使用(2),生成安全令牌!
- java md5,sha编码工具类DigestUtils
- Java利用MessageDigest获取字符串或文件MD5详解
- 使用JDK的MessageDigest类进行加密
- java.security.MessageDigest的使用
- MD5例子 使用java.security.MessageDigest
- 第四十七篇: JAVA加密解密之消息认证码算法(Message Authentication Code,MAC)
- java.security.MessageDigest的使用之生成安全令牌!
- java通过java.security.MessageDigest实现MD5加密