package com.dream.util; import java.security.MessageDigest; import java.security.Security; import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.digest.DigestUtils; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.MD4Digest; import org.bouncycastle.crypto.digests.MD5Digest; import org.bouncycastle.jce.provider.BouncyCastleProvider; import junit.framework.TestCase; /** * @author zxg * @see MD加 消息摘要算法 MD2,MD4 128位摘要信息 */ public class MDTest extends TestCase { public static String str = "zxg is a boy"; /** * jdk MD5 */ public void testJdkMD5() throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] md5bytes = md.digest(str.getBytes()); System.out.println(Hex.encodeHexString(md5bytes)); } /** * jdk MD2 */ public void testJdkMD2() throws Exception { MessageDigest md = MessageDigest.getInstance("MD2"); byte[] md2bytes = md.digest(str.getBytes()); System.out.println(Hex.encodeHexString(md2bytes)); } /** * jdk MD4 */ public void testbcMD4() throws Exception { Digest digest = new MD4Digest(); digest.update(str.getBytes(), 0, str.getBytes().length); byte[] md4Bytes = new byte[digest.getDigestSize()]; digest.doFinal(md4Bytes, 0); System.out.println(org.bouncycastle.util.encoders.Hex .toHexString(md4Bytes)); } /** * bc MD5 */ public void testbcMD5() throws Exception { Digest digest = new MD5Digest(); digest.update(str.getBytes(), 0, str.getBytes().length); byte[] md5Bytes = new byte[digest.getDigestSize()]; digest.doFinal(md5Bytes, 0);// 获取字节从0开始取 System.out.println(org.bouncycastle.util.encoders.Hex .toHexString(md5Bytes)); } /** * bc MD4 2 */ public void testbcMD42() throws Exception { Security.addProvider(new BouncyCastleProvider()); MessageDigest md = MessageDigest.getInstance("MD4"); byte[] md4Bytes = md.digest(str.getBytes()); System.out.println(Hex.encodeHexString(md4Bytes)); } /** * apache MD5 */ public void testccMD5() throws Exception { System.out.println(DigestUtils.md5Hex(str.getBytes())); } /** * apache MD4 */ public void testccMD4() throws Exception { System.out.println(DigestUtils.md2Hex(str.getBytes())); } }
相关推荐
MD5散列算法 将任意字符串转化为32位的散列值
Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法...
安全散列算法 SHA (即Secu re Hash AIgorlthm 安全散列算法)是一种 常用的数据加密算法.它由美国国家标准与技术局(NatlonaI InstItute of Standards and TechnoIogy)于1 993年作为联邦信息 处理标准公布(即第一代...
转 MD5散列算法, C语言描述. md5.h md5.cpp
包含 SHA-1,SHA-256,SHA-512,MD-5,CRC-32,Tiger-192 六种常见散列算法的库。xxx_f 包含计算函数,具有断点续算功能,类名不包括 _f 的仅包含内存操作及比较函数。 用法:反复调用 void append(uint8_t *src, uint64...
js md5加密,$.md5(String)返回十六进制数,支持中文
c++源文件,求任意序列的Md5. int F(unsigned int x,unsigned int y,unsigned int z); int G(unsigned int x,unsigned int y,unsigned int z); int H(unsigned int x,unsigned int y,unsigned int z); int I...
散列算法 MD5函数 设计一个无碰撞的压缩函数。
1993 年美国国家标准局(NIST)公布了安全散列算法SHA,SHA 已经被美国政府核准作为标准,即FIPS 180 Secure Hash Standard (SHS),FIPS 规定必须用SHS 实施数字签名算法,该算法主要是和数字签名算法(DSA)配合的...
Delphi版本的MD5散列算法。支持字符串和文件的MD5散列算法。
CRC32、MD-5、SHA-1、SHA-256、SHA-512、Tiger-192,很容易改写为相对应的C代码(一大堆同前缀函数很烦人……)
远程服务使用SSL证书链,该证书链已使用加密弱哈希算法(例如MD2、MD4、MD5或SHA1)签名。这些签名算法很容易受到碰撞攻击。攻击者可以利用这一点生成另一个具有相同数字签名的证书,从而允许攻击者伪装成受影响的服务...
远程服务使用已使用加密弱散列算法(例如MD2,MD4,MD5或SHA1) 签名的SSL证书链。已知这! 攻击者可以利用此方法生成具有相同数字签名的另一个证书,允许攻击者伪装成受影响的服务。 CVE-2004-7761
HashPump, 在各种散列算法中,利用散列长度扩展攻击的工具 HashPump一种利用哈希长度扩展攻击的各种哈希算法的工具。当前支持的算法:MD5,SHA1,SHA256,SHA512.帮助菜单$ hashpump -hHashPump [-h help] [-t test]...
加密算法,增加写代码的效率。很强的算法。。。。。。。。
MD5算法的全称是Message-Digest algorithm 5,是一种用于产生数字签名的单项散列算法。它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式,即将一个任意长度的“字节串”通过一个不...
要使用一个特定的散列算法,可以用适当的构造器函数或new()来创建一个散列对象。不论使用哪个具体的算法,这些对象都使用相同的API。 1.1 散列算法 由于hashlib有OpenSSL提供“底层支持”,所以OpenSSL库提供的所有...
这是 Apache 的 APR1 MD5 散列算法在纯 PHP 中的测试、引用、记录和打包实现。安装作曲家.json: { " require " : { " whitehat101/apr1-md5 " : " ~1.0 " }}用 use WhiteHat101 \ Crypt \ APR1_MD5 ;// Check ...
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...
对于SHA安全散列算法,以前没怎么使用过,仅仅是停留在听说过的阶段,今天在看图片缓存框架Glide源码时发现其缓存的Key采用的不是MD5加密算法,而是SHA-256加密算法,这才勾起了我的好奇心,所以趁着晚上没啥事,来...