import javax.crypto.Mac;

import javax.crypto.spec.SecretKeySpec;

public class HMACSHA256 {

/**

* 将加密后的字节数组转换成字符串

*

* @param b 字节数组

* @return 字符串

*/

public static String byteArrayToHexString(byte[] b) {

StringBuilder hs = new StringBuilder();

String stmp;

for (int n = 0; b != null && n < b.length; n++) {

stmp = Integer.toHexString(b[n] & 0XFF);

if (stmp.length() == 1)

hs.append('0');

hs.append(stmp);

}

return hs.toString().toLowerCase();

}

/**

* sha256_HMAC加密

*

* @param message 消息

* @param secret  秘钥

* @return 加密后字符串

*/

public static String sha256_HMAC(String message, String secret) {

String hash = "";

try {

Mac sha256_HMAC = Mac.getInstance("HmacSHA256");

SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");

sha256_HMAC.init(secret_key);

byte[] bytes = sha256_HMAC.doFinal(message.getBytes());

hash = byteArrayToHexString(bytes);

} catch (Exception e) {

System.out.println("Error HmacSHA256 ===========" + e.getMessage());

}

return hash;

}

public static void main(String[] args) {

String secret="aaa0711zzz";

System.err.println(sha256_HMAC(secret,"asd"));

}

}

输出:c6248891f19f33a0512f7b1b830f523cb6fc12797d6180881422abd2410d71a2

hmacsha256 java实现_HMACSHA256加密算法 java实现相关推荐

  1. JAVA加密--AES加密算法JAVA实现及使用中的各种坑,超实用

    1. AES 1.1. 概念 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准. 这个标准用 ...

  2. java 基于口令加密算法,Java安全编程:基于口令加密(PBE)

    安全 PBE 在之前的文章中曾讲到过DES加密算法,类似这种加密算法都有一个密钥,密钥的长度决定了加密的安全性,但是这种密钥比较难记忆,是需要存储的. PBE算法是一种基于口令的加密算法,它并不是构建 ...

  3. Java常用的加密算法

    一.加密算法分类 加密算法通常分为三类: 对称加密 指加密和解密使用相同密钥的加密算法.对称加密算法的优点在于加解密效率高且易于实现. 不可逆加密 不可逆加密算法的特征是加密过程不需要密钥,并且经过加 ...

  4. python能解密java的_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

  5. 非对称加密算法 - Java加密与安全

    非对称加密算法我们从DH算法中可以看到密钥对是一种非常有用的加密算法 密钥对中publicKey是可以公开的,而privateKey则是需要保密的,由此奠定了非对称加密的基础 非对称加密就是加密和解密 ...

  6. 口令加密算法 - Java加密与安全

    口令加密我们在前面介绍了对称加密算法,他们的key其实一个byte数组,例如AES256算法,他的key实际上是一个32位的数组 我们普通的加入软件有所不同,我们在使用WinRAR这样的软件的时候,通 ...

  7. 对称加密算法 - Java加密与安全

    对称加密算法什么是对称加密算法呢?1. 对称加密算法就是加密和解密使用同一个密钥,例如我们使用WinRAR,对文件进行打包的时候,我们可以设置一个秘密,在解压的时候需要使用同一个密码,才能够正确的解压 ...

  8. Java实现非对称加密算法-RSA加解密

    RSA是由三位数学家Rivest.Shamir 和 Adleman 发明的非对称加密算法,这种算法非常可靠,秘钥越长,就越难破解. 目前被破解的最长RSA秘钥是768个二进制位,长度超过768位的秘钥 ...

  9. Java实现对称加密算法-AES加解密

    AES(Advanced Encryption Standard)意思是高级加密标准,是一种区块加密标准.这个标准用来替代原先的DES,且已经被广泛使用. DES使用56位密钥,所以比较容易被破解. ...

最新文章

  1. 输出目录文件被多个中间文件输出目录相同的工程包含
  2. motionVFX mRevealer Glitch Mac(fcpx插件:30个故障干扰马赛克毛刺失真特效)
  3. mac下electron始终安装不成功解决办法
  4. [转]easyui 全部图标
  5. 互联网时代,还有闷声发大财的吗?
  6. BZOJ(1) 1003 [ZJOI2006]物流运输
  7. 你能相信这些逼真的油画是前端小姐姐只用HTML+CSS画出来的吗?精细到毛发,让美术设计也惊叹丨GitHub热榜...
  8. Python【每日一问】35
  9. HDU 2504 又见GCD(最大公约数与最小公倍数变形题)
  10. 火焰之纹章java武器代码_《火焰纹章回声:另一个英雄王》金手指全代码一览 代码大全...
  11. 2014全国计算机二级visual foxpro,全国计算机等级考试二级visual_foxpro试题
  12. 2021高考北京大峪中学成绩查询,2014年北京市各区高考成绩汇总
  13. 班章管家分享五一假日什么理财产品会有收益?五一假日理财攻略
  14. php gd ttf,linux gd php TTF字体
  15. yolov3中yolov3-voc.cfg文件中参数理解
  16. html5学生作业简单源代码,html5 简单实例源代码
  17. 怎么用微信打开wifi连接到服务器,微信一键连wifi在哪里 微信一键连wifi怎么使用...
  18. 3D图形学一:模仿草的运动 – GPU(Pixel Shader Vertex Shader)实现
  19. 《C#语言和数据库技术基础》单词必备
  20. Docker 详解及安装

热门文章

  1. 订餐系统之获取淘宝外卖订单
  2. SHELL脚本(文件归档)
  3. 【Linux】版本管理工具 Git
  4. PS 图层蒙板EZmask
  5. 《信息周刊》推出2006年中国IT薪资调查
  6. 用java模拟dnf武器强化的过程
  7. vue如何加入百度联盟广告
  8. 蠢哭了,debug版本可用release版本出错
  9. 爬虫平台的架构实现和框架的选型(二)
  10. 系统重装后,如何重新找回hexo+github搭建的博客