Java MD5 VS SAH 加密方法详解

引用百度描述:

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数。正式名称为 SHA 的家族第一个成员发布于 1993年。然而人们给它取了一个非正式的名称 SHA-0 以避免与它的后继者混淆。两年之后, SHA-1,第一个 SHA 的后继者发布了。 另外还有四种变体,曾经发布以提升输出的范围和变更一些细微设计: SHA-224, SHA-256, SHA-384 和 SHA-512 (这些有时候也被称做 SHA-2)。

那么有什么区别,参考博客:http://stark-summer.iteye.com/blog/1313884


package com.chinadatapay.controller;

import java.security.MessageDigest;

/**
 * @Description MD5	VS	SHA	加密
 * @author		

Cloud

* @date 2017-1-11上午11:14:51 */ public class MD5Util { /** * @Description 测试方法 * @author

Cloud

* @date

2017-1-11上午11:16:13

* @param * @throws Exception */ public static void main(String[] args) throws Exception { System.out.println(md5Encode("123456"));//结果 [B@5c6b29e6 System.out.println(shaEncode("123456"));//结果 7c4a8d09ca3762af61e59520943dc26494f8941b } /** * @Description MD5加密方式 * @author

Cloud

* @date

2017-1-11上午11:09:52

* @param 待加密字符串 * @return 16位的加密MD5密 */ public static String md5Encode(String str) { String newstr = null; try { // 确定计算方法 MessageDigest md5 = MessageDigest.getInstance("MD5"); // 加密后的字符串 newstr =md5.digest(str.getBytes("utf-8")).toString(); return newstr; } catch (Exception e) { e.printStackTrace(); } return newstr; } /** * @Description SHA加密 生成40位SHA码 * @author

Cloud

* @date

2017-1-11上午11:10:15

* @param 待加密字符串 * @return 返回40位SHA码 * @throws Exception 异常信息 */ public static String shaEncode(String inStr) throws Exception { MessageDigest sha = null; try { sha = MessageDigest.getInstance("SHA"); } catch (Exception e) { System.out.println("Error: 加密失败,错误信息: " + e.toString()); e.printStackTrace(); return ""; } //得到加密字符串字符数组 设置加密字符串编码格式 防止中文乱码 byte[] byteArray = inStr.getBytes("UTF-8"); byte[] md5Bytes = sha.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { int val = ((int) md5Bytes[i]) & 0xff; if (val < 16) { hexValue.append("0"); } hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); } }

你可能感兴趣的:(Java,服务端,Java,java服务端,web,md5,密码)