`

SHA安全散列算法

 
阅读更多
package com.dream.util;

import java.security.MessageDigest;
import java.security.Security;

import junit.framework.TestCase;
import org.apache.commons.codec.digest.DigestUtils;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.SHA1Digest;
import org.bouncycastle.crypto.digests.SHA224Digest;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Hex;

/**
 * @author zxg
 * @see SHA 安全散列算法 跟md5的区别主要是明文一样,对应加密后的值密文更加散列,更安全 SHA1,MD5已经被王小云教授破解
 */
public class SHATest extends TestCase {
	private final String str = "zxg is a boy";
	/**
	 * jdk SHA1
	 */
	public void testjdkSHA() throws Exception {
		MessageDigest md = MessageDigest.getInstance("SHA");
		md.update(str.getBytes());
		System.out.println(Hex.toHexString(md.digest()));

	}
	/**
	 * bc SHA1
	 */
	public void testbcSHA1() {
		Digest digest = new SHA1Digest();
		digest.update(str.getBytes(), 0, str.getBytes().length);
		byte[] sha1Bytes = new byte[digest.getDigestSize()];
		digest.doFinal(sha1Bytes, 0);
		System.out.println(org.bouncycastle.util.encoders.Hex
				.toHexString(sha1Bytes));
	}

	/**
	 * bc SHA224
	 */
	public void testbcSHA2() {
		Digest digest = new SHA224Digest();
		digest.update(str.getBytes(), 0, str.getBytes().length);
		byte[] sha224Bytes = new byte[digest.getDigestSize()];
		digest.doFinal(sha224Bytes, 0);
		System.out.println(org.bouncycastle.util.encoders.Hex
				.toHexString(sha224Bytes));
	}

	/**
	 * bc SHA224 第二种方式
	 */
	public void testbcSHA224_2() throws Exception {
		Security.addProvider(new BouncyCastleProvider());
		MessageDigest md = MessageDigest.getInstance("SHA224");
		md.update(str.getBytes());
		System.out.println(Hex.toHexString(md.digest()));

	}

	/**
	 * apache SHA1
	 */
	public void testccSHA() throws Exception {
		System.out.println(DigestUtils.sha1Hex(str.getBytes()));
	}
}

 

分享到:
评论

相关推荐

    SHA(安全散列算法)

    ### SHA(安全散列算法) #### 一、概述 安全散列算法(Secure Hash Algorithm,简称SHA)是一种广泛应用于信息安全领域的数据加密算法。它最初由美国国家标准与技术局(National Institute of Standards and ...

    SHA-1散列认证算法原代码

    SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)...

    Android数据加密之SHA安全散列算法

    对于SHA安全散列算法,以前没怎么使用过,仅仅是停留在听说过的阶段,今天在看图片缓存框架Glide源码时发现其缓存的Key采用的不是MD5加密算法,而是SHA-256加密算法,这才勾起了我的好奇心,所以趁着晚上没啥事,来...

    安全散列算法SHA

    安全散列算法SHA,全称为Secure Hash Algorithm,是一种广泛用于数据完整性验证和数字签名的密码学算法。SHA家族包括SHA-0、SHA-1、SHA-2和SHA-3等多个版本,每个版本都有不同的安全性和性能特点。在这个压缩包文件...

    SHA散列算法

    SHA散列算法,可以非常方便的家密码散列成16进制数据。

    散列算法SHA_1^_^

    散列算法,全称为哈希算法,是一种在计算领域中广泛应用的数据摘要技术。SHA-1(Secure Hash Algorithm 1)是其中的一种,...通过阅读和理解SHA-1的C代码,你可以深入了解其内部机制,并且能够自行实现或改进散列算法。

    sha2散列算法源码(可移植性强)

    SHA2散列算法,全称为Secure Hash Algorithm 2,是一组用于数字签名、消息认证码(MAC)和数据完整性检查的密码学哈希函数。它包括SHA-224、SHA-256、SHA-384和SHA-512四种不同长度的哈希函数,提供不同级别的安全性...

    MD5,SHA算法的实现与比较(C#)

    MD5,SHA算法的实现与比较(C#) MD5,SHA算法的实现与比较(C#)

    SHA-1散列算法设计与实现

    SHA-1散列算法是密码学中的一种重要算法,它被广泛用于数据完整性验证和数字签名。...同时,了解SHA-1也有助于后续学习更高级的散列算法,如SHA-256或SHA-3,这些都是网络安全和区块链等领域的重要基础。

    安全散列算法SHA-1介绍

    ### 安全散列算法SHA-1详细介绍 #### 一、SHA及SHA-1概述 1993年,美国国家标准局(NIST)公布了安全散列算法SHA,并将其列为联邦信息处理标准(FIPS 180 Secure Hash Standard, SHS)。此标准规定必须采用SHS来进行...

    基于安全散列算法的FPGA加密方法.pdf

    安全散列算法SHA(Secure Hash Algorithm),如SHA-1,是一种广泛使用的散列函数,它能够对长度不超过2^64位的消息产生160位的消息摘要输出。SHA-1算法是由美国国家标准与技术研究院(NIST)发布的国家标准FIPS PUB ...

    java的散列算法

    SHA-1是美国国家安全局(NSA)设计的一种安全散列算法,被广泛应用于各种场景中,如数字签名、数据完整性验证等。该算法能够接受任何长度的消息输入,并生成一个固定长度(160位或20字节)的消息摘要。这个摘要通常...

    安全散列算法的FPGA实现与仿真.pdf

    安全散列算法(SHA-1)是一种常用的密码散列函数,属于安全散列算法系列中的一员,它被广泛应用于信息安全领域,如数据完整性验证、数字签名等场景中。SHA-1算法由美国国家安全局(NSA)设计,并由美国国家标准与...

    认证及散列算法

    - **SHA**(Secure Hash Algorithm)系列:包括SHA-1、SHA-256、SHA-384、SHA-512等,是由美国国家安全局(NSA)设计的一系列散列算法。 - SHA-1输出160位散列值,曾经广泛应用,但现在已被认为不够安全。 - SHA-...

    FIPS 180-2 散列算法SHA-224、SHA-256、SHA-384 和 SHA-512 的C语言快速软件实施

    描述中提到的"SHA-224、SHA-256、SHA-384 和 SHA-512"是FIPS 180-2中定义的一组安全散列算法,统称为SHA-2(Secure Hash Algorithm 2)。这些算法分别产生224、256、384和512位的散列值,它们比SHA-1更加强壮,因为...

    sha-1散列算法的设计与实现

    SHA-1散列算法是一种广泛应用于信息安全领域的密码学散列函数,由美国国家安全局(NSA)设计,并在1995年由美国国家标准与技术研究所(NIST)发布为标准。该算法主要用于验证数据完整性,比如文件校验、数字签名等...

    SHA (Secure Hash Algorithm,译作安全散列算法) C语言代码

    SHA (Secure Hash Algorithm,译作安全散列算法) 的完整C语言代码。

    常用散列算法类源代码(6种)

    散列算法,也被称为哈希算法,是一种在计算领域中广泛应用的技术,主要用于数据验证、存储索引和加密等场景。本资源包含六种常见的散列算法的...在实际开发中,应当优先考虑使用更为安全的现代散列算法,如SHA-3系列。

    SHA:安全散列算法简析 附实例

    SHA,即安全散列算法,是由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布的系列密码散列函数。这个算法家族包括SHA-0、SHA-1以及SHA-2系列(SHA-224、SHA-256、SHA-384、SHA-512)。SHA-0是...

Global site tag (gtag.js) - Google Analytics