JAVA计算摘要,例如MD5和SHA-256
2017-11-30 21:22
766 查看
摘要有什么用?
1.保证数据的完整性:例如你发送一个100M的文件给你的B,但是你不知道B收到的是否是完整的文件;此时你首先使用摘要算法,如MD5,计算了一个固定长度的摘要,将这个摘要和文件一起发送给B,B接收完文件之后,同样使用MD5计算摘要,如果B计算的结果和你发送给他的摘要结果一致,说明B接收的文件是完整的。
2.数字签名:数字签名里面的签名都是使用摘要算法计算的,目前(2017年),数字签名的摘要算法已经使用SHA-256作为规范。
JAVA如何产生摘要
JDK一般都包含一个security包,这个包已经实现主流的摘要算法,我们直接拿过来使用就好,接下来放一个工具类:
调用:
输出:
结束,
转载请加链接!
1.保证数据的完整性:例如你发送一个100M的文件给你的B,但是你不知道B收到的是否是完整的文件;此时你首先使用摘要算法,如MD5,计算了一个固定长度的摘要,将这个摘要和文件一起发送给B,B接收完文件之后,同样使用MD5计算摘要,如果B计算的结果和你发送给他的摘要结果一致,说明B接收的文件是完整的。
2.数字签名:数字签名里面的签名都是使用摘要算法计算的,目前(2017年),数字签名的摘要算法已经使用SHA-256作为规范。
JAVA如何产生摘要
JDK一般都包含一个security包,这个包已经实现主流的摘要算法,我们直接拿过来使用就好,接下来放一个工具类:
public final class MessageDigestUtil { /** * 使用指定哈希算法计算摘要信息 * @param content 内容 * @param algorithm 哈希算法 * @return 内容摘要 */ public static String getMD5Digest(String content,String algorithm){ try { MessageDigest messageDigest = MessageDigest.getInstance(algorithm); messageDigest.update(content.getBytes("utf-8")); return bytesToHexString(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } /** * 将字节数组转换成16进制字符串 * @param bytes 即将转换的数据 * @return 16进制字符串 */ private static String bytesToHexString(byte[] bytes){ StringBuffer sb = new StringBuffer(bytes.length); String temp = null; for (int i = 0;i< bytes.length;i++){ temp = Integer.toHexString(0xFF & bytes[i]); if (temp.length() <2){ sb.append(0); } sb.append(temp); } return sb.toString(); } }
调用:
MessageDigestUtil.getMD5Digest("test","sha-256");
输出:
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
结束,
转载请加链接!
相关文章推荐
- Windows下计算文件摘要信息MD5、SHA-1、SHA-256
- MD5,SHA-1,SHA-256摘要加解密
- Java生成MD5摘要(MD5 SHA-1)
- java中消息摘要MD5与SHA-1
- java中使用MD5进行计算摘要
- java 实现字符串以及文件的md5、sha计算完整代码
- 常见加密算法java实现(MD5,SHA-256,SHA-512)
- java 实现各种加密(MD5 ,SHA-1,SHA-256)
- 关于java散列算法(MD5 SHA-1 SHA-128 SHA-256..)的一点总结
- Java中使用MD5进行计算摘要
- Java中MD5计算摘要
- java中使用MD5进行计算摘要
- Java生成摘要(MD5 SHA-1)
- Java 消息摘要 散列 MD5 SHA
- JAVA的MD5和SHA-256和SHA-512 的 Hash 算法的调用
- java中使用MD5进行计算摘要
- 【入门】Java信息摘要(MD5与SHA)
- java中使用MD5进行计算摘要
- 数据摘要算法介绍(SHA、MD5和CRC32)
- 用CommonCrypto计算MD5和SHA