跟Java方面做接口,中间有一个HmacMD5的加密算法需要我们来实现
so,so结果如下
gem install ruby-hmac
require 'hmac-md5'
HMAC::MD5.new("test_key").update("test_string").hexdigest.upcase()
ruby的输出结果
引用
=> "3FD9B6B4901DAF25BFB9DAA0718B3698"
package com.study;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class HmacMD5 {
private static byte[] encryptHMAC(String data, String secret) {
byte[] bytes = null;
SecretKey secretKey;
try {
secretKey = new SecretKeySpec(secret.getBytes(Constants.CHARSET_UTF8), "HmacMD5");
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
bytes = mac.doFinal(data.getBytes(Constants.CHARSET_UTF8));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bytes;
}
private static String byte2hex(byte[] bytes) {
StringBuilder sign = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
sign.append("0");
}
sign.append(hex.toUpperCase());
}
return sign.toString();
}
public abstract class Constants
{
public static final String CHARSET_UTF8 = "UTF-8";
}
public static void main(String[] args) throws UnsupportedEncodingException,
IOException {
String str = "test_string";
byte[] bytes = encryptHMAC(str,"test_key");
String data = byte2hex(bytes);
System.out.println(data);
}
}
java的输出结果
引用
3FD9B6B4901DAF25BFB9DAA0718B3698
补充一下:
如果不用secret key直接MD5的话,调用下面ruby代码即可。
Digest::MD5.hexdigest('test_string').upcase
=> "3474851A3410906697EC77337DF7AAE4"
MD5方面的库还是比较多的,Openssl里面也有
分享到:
相关推荐
对HmacMd5加密的一些封装,方便在开发过程中直接使用的静态工厂方法类
主要介绍了Python实现的HMacMD5加密算法,简单说明了HMAC-MD5加密算法的概念、原理并结合实例形式分析了Python实现HMAC-MD5加密算法的相关操作技巧,,末尾还附带了Java实现HMAC-MD5加密算法的示例,需要的朋友可以参考...
标题中的“基于.net的hmacMD5,MD5加密工具”指的是一个专为.NET平台设计的程序或库,它集成了HMAC-MD5和MD5算法,用于数据的安全处理。HMAC-MD5通过将MD5哈希函数与密钥相结合,提高了安全性能,常用于网络通信中的...
文件`hmacMd5.txt`可能包含了一些示例用法、测试用例或者进一步解释HMAC-MD5加密的详细步骤。在使用这段代码时,需要确保已经安装了OpenSSL库,并链接相应的动态或静态库。同时,要注意对密钥和消息的管理,确保密钥...
Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点: JavaScript调用jar包对文件内容进行MD5加密,返回加密md5值 Kettle实现对文件内容的加密,返回加密md5值 2.使用方法 1)下载jar包 ...
在JavaScript中实现MD5加密算法是常见的需求,特别是在前端开发中用于数据的安全传输或者存储。 MD5的主要特点包括: 1. **不可逆性**:MD5哈希结果不能通过哈希值反推出原始信息,因此常用于验证数据完整性和身份...
简单几行代码实现HMAC_MD5加密,写好了函数可以直接使用。
《HMAC-MD5加密算法在C语言中的实现详解》 HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)是一种用于消息完整性验证和身份认证的密码学技术,它结合了散列函数(如MD5)和密钥来产生一个...
上次曾经传过一个易宝、...调用方法:HmacMd5(text,key)-加密内容支持中文,但key最好用非中文的。 md5(text)-简版,ASP_MD5(text)-标准版 支付宝一定要用ASP_MD5,财付通的加密内容一般没中文的,所以两者均可。
在这个场景中,我们关注的是一个使用C++实现的HMACMD5库,特别适用于连接阿里云服务。 首先,HMAC是一种基于哈希函数的安全协议,它使用密钥来生成一个固定长度的摘要,以验证消息是否被篡改。HMAC利用密钥对消息...
Esp8266 细聊HmacMD5的加密方法带来的安全性,并实践在esp8266上,最大保障传输的过程的信息的安全性。 博文对应地址:https://blog.csdn.net/xh870189248/article/details/83751704
在C语言中实现MD5,需要理解其算法流程,包括初始化、更新、最终化等步骤。 HMAC(Hash-based Message Authentication Code)是基于密钥的哈希消息认证码,结合了密钥和哈希函数来提供数据完整性和源认证。HMAC-MD5...
Hmacmd5加密算法,C语言实现,适用连接阿里云的物联网平台做加密处理
1、适合新手使用,详细的代码和举例 2、hmacMd5的方法网上资料少
HMACSHA1、HMACSHA256和HMACMD5是使用不同哈希算法实现的HMAC变体: 1. HMAC-SHA1:使用SHA-1哈希算法。SHA-1虽然在安全性上较弱,但速度相对较快,曾经被广泛使用。然而,由于其存在碰撞攻击的风险,现在已被更...
## 说明 此程序可以进行sha1,sha256,md5的加密 在input输入框内输入所需加密的数据,然后点击"encryption"按扭即可实现加密; 默认input输入框内的数据为123456
ASP-HMAC-MD5加密方法是ASP(Active Server Pages)中实现的一种安全的哈希算法,主要用于数据的完整性校验和认证。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能将任意长度的信息转化为固定长度...
HMACMD5 是从 MD5 哈希函数构造的一种键控哈希算法,被用作基于哈希的消息验证代码 (HMAC)。此 HMAC 进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希...
在C#环境中实现HMAC-MD5,首先需要创建一个`System.Security.Cryptography.HMACMD5`类的实例。由于题目提到不依赖MD5相关的DLL,我们可以手动实现MD5算法,或者使用.NET Framework内置的MD5类。下面是一个简单的HMAC...