当前位置: 首页 > news >正文

Java字符串加密HMAC-SHA1密钥,转换成Base64编码

新建一个maven测试项目,直接把代码复制过去就行,把data和secretKey的值替换成想加密的值。

package test;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.codec.binary.Base64;public class testP {public static String hmacSha1ToBase64(String data, String secretKey) {try {// 创建一个HMAC-SHA1密钥SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1");// 获得一个Mac对象Mac mac = Mac.getInstance("HmacSHA1");mac.init(signingKey);// 计算HMAC值byte[] rawHmac = mac.doFinal(data.getBytes());// 将HMAC值转换成Base64编码return Base64.encodeBase64String(rawHmac);} catch (InvalidKeyException | NoSuchAlgorithmException e) {throw new RuntimeException("获取失败:", e);}}public static void main(String[] args) {String data = "值1";String secretKey = "值2";String encryptedData = hmacSha1ToBase64(data, secretKey);System.out.println("HMAC-SHA1加Base64输出成功: " + encryptedData);}
}

如果复制过去import org.apache.commons.codec.binary.Base64;标红可以考虑导入依赖

<dependencies><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.16.1</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.14.0</version></dependency>
</dependencies>

http://www.lryc.cn/news/373794.html

相关文章:

  • 【网络架构】Nginx
  • C# OpenCvSharp 逻辑运算-bitwise_and、bitwise_or、bitwise_not、bitwise_xor
  • JVM常用概念之扁平化堆容器
  • python面试题5:浅拷贝和深拷贝之间有什么区别?(难度--中等)
  • Jetson Linux 上安装ZMQ
  • 【Pycharm】设置双击打开文件
  • Web前端后端架构:构建高效、稳定与可扩展的互联网应用
  • 数据仓库核心:事实表深度解析与设计指南
  • Reactor和epoll
  • Mybatis-Plus多种批量插入方案对比
  • 数据库面试
  • 探索Web Components
  • 摄影师在人工智能竞赛中与机器较量并获胜
  • CMU最新论文:机器人智慧流畅的躲避障碍物论文详细讲解
  • Spring中自定义注解进行类方法增强
  • TS:元组
  • 微服务 | Springboot整合Dubbo+Nacos实现RPC调用
  • 读书的意义
  • 第66集《摄大乘论》
  • VMware 桥接网络突然无法上网
  • 面试题——Redis
  • Java——构造器(构造方法)和 this
  • MySQL-连接查询
  • 适合小白学习的项目1832javaERP管理系统之仓库采购管理Myeclipse开发mysql数据库servlet结构java编程计算机网页项目
  • 分布式技术导论 — 探索分析从起源到现今的巅峰之旅(分布式技术)
  • 基于Python+OpenCV+SVM车牌识别系统(GUI界面)【W3】
  • ansible.cfg forks参数
  • Web前端写随机抽奖:技术与创意的碰撞
  • Centos系统yum安装mysql数据库
  • 使用Selenium进行Web自动化:详细操作指南