`

JAVA生成HMAC-SHA1数据签名

    博客分类:
  • JAVA
阅读更多
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

public class HMACSHA1 {

	private static final String HMAC_SHA1 = "HmacSHA1";

	/**
	 * 生成签名数据
	 * 
	 * @param data 待加密的数据
	 * @param key  加密使用的key
	 * @return 生成MD5编码的字符串 
	 * @throws InvalidKeyException
	 * @throws NoSuchAlgorithmException
	 */
	public static String getSignature(byte[] data, byte[] key) throws InvalidKeyException, NoSuchAlgorithmException {
		SecretKeySpec signingKey = new SecretKeySpec(key, HMAC_SHA1);
		Mac mac = Mac.getInstance(HMAC_SHA1);
		mac.init(signingKey);
		byte[] rawHmac = mac.doFinal(data);
		return MD5.encode(rawHmac);
	}
	
}
分享到:
评论
2 楼 Aaron5 2011-09-07  
luckyzhw 写道
请博主“MD5”使用哪个Package?

使用这个:http://ucool.iteye.com/blog/1102587
1 楼 luckyzhw 2011-09-06  
请博主“MD5”使用哪个Package?

相关推荐

    HMAC-SHA1签名

    2. **SHA1**:SHA-1是SHA(Secure Hash Algorithm)家族的一员,是一种广泛使用的安全哈希算法,能够将任意长度的数据转换为固定长度的160位(20字节)的哈希值。尽管SHA1的安全性已不复当年,但在某些场景下仍然...

    asp_hmac_sha256加密支持中文utf-8编码

    5. **生成HMAC值**:经过上述过程,最终得到的哈希值就是HMAC-SHA256的加密结果。 6. **验证**:在接收端,使用相同的密钥和步骤重复上述过程,对比生成的HMAC值,如果一致则证明消息未被篡改。 由于ASP是较老的...

    asp版hmac_sha1加密(亲测可用).zip

    该压缩包中的"sha1_demo.asp"文件很可能是ASP实现的HMAC-SHA1加密示例代码,展示了如何在ASP中创建和验证HMAC-SHA1签名。它可能包含以下关键步骤: 1. 导入需要的库:ASP中可能需要引用一些辅助函数或组件来实现SHA...

    使用HMAC-SHA1签名方法详解

    加密算法:使用HMAC-SHA1签名方法复制代码 代码如下: /** * @brief 使用HMAC-SHA1算法生成oauth_signature签名值 * * @param $key 密钥 * @param $str 源串 * * @return 签名值 */ function getSignature...

    asp版hmac_sha1加密方式,真正和PHP的hash_hmac加密结果完全一样。支持中文utf-8编码

    HMAC(Hash-based Message Authentication Code)是一种使用密钥的哈希函数,它结合了密钥和消息,通过特定的哈希算法(如 SHA1)生成一个固定长度的摘要。这个摘要可以作为数据的数字签名,用于验证数据的完整性和...

    Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    尽管SHA-1也已被破解,但SHA-2系列(特别是SHA-256和SHA-512)仍然被认为是安全的,并广泛用于数字签名、证书、区块链等领域。 HMAC(Hash-based Message Authentication Code)是一种基于密钥的哈希认证协议,它...

    aws4-signature:AWS 版本 4 签名生成器

    "AWS4-HMAC-SHA256\n20110909T233600Z\n20110909/us-east-1/iam/aws4_request\n3511de7e95d28ecd39e9513b642aee07e54f4941150d8df8bf94b328ef7e55e2" ) ; // Outputs "ced6826de92d2bdeed8f846f0bf508e8559e

    Java实战:CSDN博客安全认证头x-ca-nonce与x-ca-signature解析与生成.zip

    以下是一个使用Java实现HMAC-SHA256签名的示例: ```java import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.util.Base64; public class...

    Java实现CSDN博客安全头x-ca-nonce与x-ca-signature的生成与测试.zip

    下面是一个使用HMAC-SHA256生成"x-ca-signature"的Java示例: ```java import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.util.Base64; ...

    深入探究CSDN博客安全机制:Java实现x-ca-nonce与x-ca-signature生成.zip

    x-ca-signature的生成涉及到签名算法,常见的有HMAC(Hash-based Message Authentication Code)系列算法,如HMAC-SHA1、HMAC-SHA256等。这些算法结合了哈希函数和密钥,可以对消息进行签名,以验证消息的完整性和...

    java多种加密解密算法:SHA算法,HMAC算法,DES算法,PBE算法,AES算法,RSA算法,数字签名,D-H算法

    SHA-1和SHA-256是最常用的版本,它们用于数据完整性校验,因为相同的输入会产生固定的哈希值,而不同输入产生哈希值的概率极低。 2. HMAC(Hash-based Message Authentication Code)算法: HMAC结合了散列函数和...

    仿淘宝签名认证 HMAC加密

    2. **生成签名**:使用预先共享的密钥(通常是Base64编码的)和选定的哈希算法(如SHA-1、SHA-256等),对拼接后的字符串进行HMAC运算,得到一个哈希值。 3. **编码签名**:将生成的哈希值进行Base64编码,转换为可...

    aws-v4:使用AWS Signature版本4为API网关(execute-api)生成AWS签名v4

    AWS-V4 一个小的实用程序,可使用普通nodejs生成 。 用例尤其适用于AWS API GATEWAY(excute-api)服务。安装 npm install aws-v4例子下面的示例使用post请求,您还可以使用其他请求,例如: get , put , delete ...

    HMAC.rar_Quick_java hmac

    首先,你需要实例化一个`Mac`对象,指定使用的哈希算法,如SHA-1、SHA-256等。然后,初始化`Mac`对象并设置密钥。最后,将数据传递给`update()`方法,并调用`doFinal()`方法获取HMAC值。 3. **示例代码**: ```java...

    Java实现SHA-1算法实例

    在Java中实现SHA-1算法涉及到对输入数据进行一系列复杂的数学运算,包括异或、位移和加法等操作,以确保即使是微小的输入变化也会导致显著不同的散列结果。 在给定的Java代码实例中,可以看到以下几个关键的函数和...

    Java深度解析:CSDN博客x-ca-nonce与x-ca-signature生成机制.zip

    在Java中,常见的签名算法有RSA、SHA1withRSA、HMAC-SHA256等。以下是一个使用HMAC-SHA256生成签名的示例: ```java import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.nio.charset....

    智能识别收货地址Java.pdf

    - `calcAuthorization`方法用于生成基于HMAC-SHA1算法的签名。此方法接受四个参数:`source`(源标识),`secretId`(密钥ID),`secretKey`(密钥)和`datetime`(时间戳)。 - 首先,将`x-date`和`x-source`的键值对组合...

    3.腾讯微博Android客户端开发——签名、辅助、辅助方法编写

    2. **使用HMAC-SHA1加密算法**:利用构造好的签名基础字符串和密钥(secret)生成签名。 3. **Base64编码**:最后对生成的签名进行Base64编码,得到最终的`oauth_signature`。 ##### 2.3 URL编码方法 在生成签名的...

    java 国密算法实现包含SM2 SM3 SM4和数字签名、数字证书的验证

    在Java中,你可以使用`Signature`类来生成和验证数字签名,结合SM2算法,可以实现基于国密标准的签名操作。 5. **数字证书**:数字证书是公开密钥基础设施(PKI)的一部分,它包含公钥、证书持有者的身份信息以及...

    xmljava系统源码-framework:FUNTL框架

    xml java系统源码 FUNTL ...SHA-1/MD5 消息的工具类 序列化与反序列化工具类 实现 Github Kaptcha 图形验证码 提供了基于 Sigar 跨平台的系统信息收集API,由C语言实现。可以收集的信息包括: CPU信

Global site tag (gtag.js) - Google Analytics