`

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 (即Secu re Hash AIgorlthm 安全散列算法)是一种 常用的数据加密算法.它由美国国家标准与技术局(NatlonaI InstItute of Standards and TechnoIogy)于1 993年作为联邦信息 处理标准公布(即第一代SHA算法——SHA...

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

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

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

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

    SHA散列算法

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

    安全散列算法SHA-1介绍

    1993 年美国国家标准局(NIST)公布了安全散列算法SHA,SHA 已经被美国政府核准作为标准,即FIPS 180 Secure Hash Standard (SHS),FIPS 规定必须用SHS 实施数字签名算法,该算法主要是和数字签名算法(DSA)配合的...

    安全散列算法SHA

    包含两种代码风格,一种是多宏函数操作(来自于老师);另一种多非宏函数函数操作(来自于我自己)。免费获取可联系:mailbox_krj@163.com

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

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

    散列算法SHA_1^_^

    散列算法SHA_1,C上面的代码,希望对大家有帮助 ^_^^_^^_^^_^!

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

    用c语言编写的SHA-1散列算法的设计与实现,简单易懂

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

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

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

    该算法C源码可移植性强,处理字节类型问题后,和define设定公式后调用API接口函数即刻实现SHA2运算

    SHA256 摘要算法 、HMAC_SHA256 散列/哈希算法 C语言实现,适应于各种嵌入式单片机

    void sha256_get(uint8_t hash[32], const uint8_t *message, int length);/*此函数用于对消息计算摘要值,输入任意大小消息,输出32字节摘要值*/ void hmac_sha256_get(uint8_t digest[32], uint8_t *message, int...

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

    SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数

    散列算法类库 (修正版)

    包含 SHA-1,SHA-256,SHA-512,MD-5,CRC-32,Tiger-192 六种常见散列算法的库。xxx_f 包含计算函数,具有断点续算功能,类名不包括 _f 的仅包含内存操作及比较函数。 用法:反复调用 void append(uint8_t *src, uint64...

    Android数据加密之Rsa加密

     •Android数据加密之SHA安全散列算法  什么是Rsa加密? RSA算法是最流行的公钥密码算法,使用长度可以变化的密钥。RSA是第一个既能用于数据加密也能用于数字签名的算法。 RSA算法原理如下: 1.随机选择两个大...

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

    一个密码学算法的课程设计 能实现对一个G的数据计算消息摘要

    sha.rar_SHA_SHA-1算法的 C语言实现

    SHA加解密算法,SHA是安全散列算法,c语言实现的Benchmark

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

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

    ssl证书生成工具(sha256算法)

    远程服务使用SSL证书链,该证书链已使用加密弱哈希算法(例如MD2、MD4、MD5或SHA1)签名。这些签名算法很容易受到碰撞攻击。攻击者可以利用这一点生成另一个具有相同数字签名的证书,从而允许攻击者伪装成受影响的服务...

Global site tag (gtag.js) - Google Analytics