跟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加密算法的示例,需要的朋友可以参考...
hmacmd5 加密 C语言实现
基于.net的hmacMD5,MD5加密工具,资深架构师倾情编写
Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点: JavaScript调用jar包对文件内容进行MD5加密,返回加密md5值 Kettle实现对文件内容的加密,返回加密md5值 2.使用方法 1)下载jar包 ...
简单几行代码实现HMAC_MD5加密,写好了函数可以直接使用。
简单几行代码实现HMAC_MD5加密,写好了函数可以直接使用。
Javascript实现MD5加密算法,Javascript实现MD5加密算法
上次曾经传过一个易宝、...调用方法:HmacMd5(text,key)-加密内容支持中文,但key最好用非中文的。 md5(text)-简版,ASP_MD5(text)-标准版 支付宝一定要用ASP_MD5,财付通的加密内容一般没中文的,所以两者均可。
Hmacmd5加密算法,C语言实现,适用连接阿里云的物联网平台做加密处理
Esp8266 细聊HmacMD5的加密方法带来的安全性,并实践在esp8266上,最大保障传输的过程的信息的安全性。 博文对应地址:https://blog.csdn.net/xh870189248/article/details/83751704
1、适合新手使用,详细的代码和举例 2、hmacMd5的方法网上资料少
java与c#MD5加密方法得到不一致解决办法,MD5加密后得到不一致结果
## 说明 此程序可以进行sha1,sha256,md5的加密 在input输入框内输入所需加密的数据,然后点击"encryption"按扭即可实现加密; 默认input输入框内的数据为123456
hmacmd5 c++代码,用于连接阿里云,注意这个程序必须32位编译器!!!如果用python或C++更容易实现
MD5和 HMAC-MD5 C 语言实现,在前人的基础上修改的,可用于嵌入式等各种需要使用md5或者mac-md5的c语言场景,亲测编译通过且验证有效。
不依赖MD5相关DLL的全部源码c#环境的HMacMD5的算法程序,亲测KEY16位以下正常
asp-hmac-md5加密方法-md5函数文件-支持中文
开发需要用到hmacmd5加密,翻遍网上都没找到一个好用的,自己做了个hmacMD5加密动态库,原型function hmacmd5(s_source:PChar;s_key:PChar):PChar; PB中调用声明Function string hmacmd5( string s_source, string s...