package com.dream.util; import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import junit.framework.TestCase; import org.apache.commons.codec.binary.Hex; import org.bouncycastle.crypto.digests.MD5Digest; import org.bouncycastle.crypto.macs.HMac; import org.bouncycastle.crypto.params.KeyParameter; /** * @author zxg * @see MAC(Message Authentication Code) HMAC(keyed-Hash Message Authentication * Code) 含有密钥的散列函数算法 融合了MD和SHA特性,多了密钥 HmacMD5..,HmacSHA1等 */ public class MACTest extends TestCase { private String str = "zxg is a boy"; /** * jdk hmacMD5 */ public void testjdkHmacMD5() throws Exception { KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5"); SecretKey secretKey = keyGenerator.generateKey();// 产生密钥 byte[] key = Hex.decodeHex("aaaaaaaaaa".toCharArray()); SecretKey restoreSecretKey = new SecretKeySpec(key, "HmacMD5");// 还原密钥 Mac mac = Mac.getInstance(restoreSecretKey.getAlgorithm());// 实例化MAC mac.init(restoreSecretKey);// 初始化Mac byte[] hmacMD5Bytes = mac.doFinal(str.getBytes());// 执行摘要 System.out.println(Hex.encodeHexString(hmacMD5Bytes)); } /** * bc hmacMD5 */ public void testbcHmacMD5() { HMac hmac = new HMac(new MD5Digest()); hmac.init(new KeyParameter(org.bouncycastle.util.encoders.Hex .decode("aaaaaaaaaa"))); hmac.update(str.getBytes(), 0, str.getBytes().length); byte[] hmacMD5bytes = new byte[hmac.getMacSize()]; hmac.doFinal(hmacMD5bytes, 0); System.out.println(org.bouncycastle.util.encoders.Hex .toHexString(hmacMD5bytes)); } }
相关推荐
Facebook获取密钥散列的apk 本资源配笔主写的博文食用最佳哦! 当初学习之用写到的demo 本来不想收分,但是现在资源最低必须要收1分,见谅! 我现在又修改为0分下载,不知道是否可行
VC++ 实现Diffie-Hellman密钥交换算法
公开密钥加密算法,基于背包问题的公钥密码系统 ——MH公钥算法
公开密钥密码算法及其快速实现
基于java的开发源码-Blowfish对称密钥加密算法类和实例.zip 基于java的开发源码-Blowfish对称密钥加密算法类和实例.zip 基于java的开发源码-Blowfish对称密钥加密算法类和实例.zip 基于java的开发源码-Blowfish对称...
这是一本学习公开密钥密码算法的好书. 《公开密钥密码算法及其快速实现》周玉洁、冯登国,国防工业出版社
摘要:提出了一种改进的国际数据加密算法(Internationaldataencryptionalgorithm,IDE-A)子密钥扩展算法。该算法采用伪随机序
一个不错的大整数密钥交换类,可以指定任意长度的正整数。
利用统计分析、生日攻击等方法,针对一类基于混沌系统的带密钥散列函数进行了分析,给出了针对这些算法的伪造攻击和等价密钥恢复攻击。同时,研究了上述攻击奏效的原因,并由此总结了基于混沌技术设计带密钥散列函数时...
DH密钥交换算法这个机制的巧妙在于它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道确定对称密钥。 我用Java写了两个例子,有需要的可以看看。
提出了一种适用于无线传感器网络的基于改进密钥链接树的组密钥更新算法。通过在基于密钥链接树的组密钥管理方案中引入问题密钥路径,并延迟这些问题密钥路径上的密钥更新操作,从而减少密钥链接树中辅助节点上的重复...
DH密钥交换算法。
这为本人编写,AES密钥加密算法,过程简单
python实现Diffie-Hellman密钥交换算法工程文件 详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125692548
解决射频识别(RFID)和低运算能力设备安全的理想方法就是实现一种动态密钥建立算法,但是经典的动态密钥建立算法都不适用于RFID。旨在研究一种为RFID标签和低运算能力设备提供动态密钥建立的算法。基于TPM的密钥...
国人写的一本介绍公钥密码算法(包括椭圆曲线密码算法)的书,给出了各种密码算法的快速实现,依照本书的算法,可以方便、快速地实现所需的公钥密码。本书可供从事计算机通信、密码学和应用数学的科研人员参考,也可...
1.stm32上运行64位密钥的rsa算法,包括密钥产生,加密,解密和验证。 2.提供vs的源码工程文件,实现密钥产生验证,及stm32 可执行文件插入密钥 3.说明文档和rsa原理。 4.可以实现stm作为电子狗类似的系统保护器件。