当前位置:首页 > 开发 > 编程语言 > 算法 > 正文

JAVA加密算法实现用例 消息摘要

发表于: 2014-02-22   作者:cuisuqiang   来源:转载   浏览次数:
摘要: 一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于 SHA1 是产生一个 20 字节的二进制数组)。 消息摘要有两个基本属性:两个不同的报文难以生成相同的摘要难以对指定的摘要生成一个报文,而由该报文反推算出该指定的摘要代表:美国国家标准技术研究所的 SHA1 和麻省理工学院 Ronald Rivest 提出的 MD5   packag

一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于 SHA1 是产生一个 20 字节的二进制数组)。


消息摘要有两个基本属性:
两个不同的报文难以生成相同的摘要
难以对指定的摘要生成一个报文,而由该报文反推算出该指定的摘要
代表:美国国家标准技术研究所的 SHA1 和麻省理工学院 Ronald Rivest 提出的 MD5

 

package test;
import java.security.MessageDigest;
public class SHA_MD5 {
	public static void main(String[] args) {
		SHA_MD5 my = new SHA_MD5();
		my.testDigest();
	}
	@SuppressWarnings("static-access")
	public void testDigest() {
		try {
			String myinfo = "我的测试信息";
			// MessageDigest alga = MessageDigest.getInstance("MD5");
			MessageDigest alga = MessageDigest.getInstance("SHA-1"); // 生成一个 MessageDigest 类 , 确定计算方法
			alga.update(myinfo.getBytes()); // 添加要进行计算摘要的信息
			byte[] digesta = alga.digest(); // 计算出摘要,(对于MD5是16位,SHA是20位)
			System.out.println("本信息摘要是 :" + byte2hex(digesta));

			// 其他人用相同的方法初始化,添加信息,最后进行比较摘要是否相同
			MessageDigest algb = MessageDigest.getInstance("SHA-1");
			algb.update(myinfo.getBytes());
			if (algb.isEqual(digesta, algb.digest())) {
				System.out.println("信息检查正常");
			} else {
				System.out.println("摘要不相同");
			}
		} catch (java.security.NoSuchAlgorithmException ex) {
			System.out.println("非法摘要算法");
		}
	}
	public String byte2hex(byte[] b) {
		String hs = "";
		String stmp = "";
		for (int n = 0; n < b.length; n++) {
			stmp = (Integer.toHexString(b[n] & 0XFF));
			if (stmp.length() == 1)
				hs = hs + "0" + stmp;
			else
				hs = hs + stmp;
			if (n < b.length - 1)
				hs = hs + ":";
		}
		return hs.toUpperCase();
	}
}

 

请您到ITEYE网站看 java小强 原创,谢谢!

http://cuisuqiang.iteye.com/ 

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

JAVA加密算法实现用例 消息摘要

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一.概述 我们打开Apache的官网的如下页面,可以看到md5,点击md5的超链接,在新打开的页面将看到一
一.概述 我们打开Apache的官网的如下页面,可以看到md5,点击md5的超链接,在新打开的页面将看到一
消息摘要算法简介 一、什么是消息摘要算法 消息摘要算法的主要特征是加密过程不需要密钥,并且经过
1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊
15.3.1 使用Bouncy Castle API创建消息摘要 消息摘要函数是由org.bouncycastle.crypto.digests包提
感谢:http://www.iteye.com/wiki/security/1710-one-way-encryption-algorithm http://sarin.iteye
密码的常用术语:   1.密码体制:由明文空间、密文空间、密钥空间、加密算法和解密算法5部分组成
如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorit
如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorit
学习了Scala并发编程匿名Actor、消息传递、偏函数实战解析及其在Spark源码中的应用解析,具体来说Sc
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号