常用的字符串加密解密工具类

         提前声明一下:此工具类忘记出处了,很抱歉,如果原创遇上了我立马上您的链接:

加密解密的工具类DataEncryptUtil:

     

package org.util;import java.security.MessageDigest;  import javax.crypto.KeyGenerator;  
import javax.crypto.Mac;  
import javax.crypto.SecretKey;  
import javax.crypto.spec.SecretKeySpec;  import sun.misc.BASE64Decoder;  
import sun.misc.BASE64Encoder;  /** * data encrypt utls * * @author skyline * */  
public class DataEncryptUtil {  public static final String KEY_SHA = "SHA";  public static final String KEY_MD5 = "MD5";  /** * MAC算法可选以下多种算法 * * <pre> * HmacMD5 * HmacSHA1 * HmacSHA256 * HmacSHA384 * HmacSHA512 * </pre> */  public static final String KEY_MAC = "HmacMD5";  /** * BASE64解密 * * @param key = 需要解密的密码字符串 * @return * @throws Exception */  public static byte[] decryptBASE64(String key) throws Exception {  return (new BASE64Decoder()).decodeBuffer(key);  }  /** * BASE64加密 * * @param key = 需要加密的字符数组 * @return * @throws Exception */  public static String encryptBASE64(byte[] key) throws Exception {  return (new BASE64Encoder()).encodeBuffer(key);  }  /** * MD5加密 * * @param data = 需要加密的字符数组 * @return * @throws Exception */  public static byte[] encryptMD5(byte[] data) throws Exception {  MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);  md5.update(data);  return md5.digest();  }  /** * SHA加密 * * @param data = 需要加密的字符数组 * @return * @throws Exception */  public static byte[] encryptSHA(byte[] data) throws Exception {  MessageDigest sha = MessageDigest.getInstance(KEY_SHA);  sha.update(data);  return sha.digest();  }  /** * 初始化HMAC密钥 * * @return * @throws Exception */  public static String initMacKey() throws Exception {  KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);  SecretKey secretKey = keyGenerator.generateKey();  return encryptBASE64(secretKey.getEncoded());  }  /** * HMAC加密 * * @param data = 密匙加密过的字符数组 * @param key = 需要加密的字符串 * @return * @throws Exception */  public static byte[] encryptHMAC(byte[] data, String key) throws Exception {  SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);  Mac mac = Mac.getInstance(secretKey.getAlgorithm());  mac.init(secretKey);  return mac.doFinal(data);  }  }  

    


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入Java集合学习系列:LinkedHashSet的实现原理

转载自 深入Java集合学习系列&#xff1a;LinkedHashSet的实现原理 1. LinkedHashSet概述&#xff1a; LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于&#xff0c;后者维护着一个运行于所有条目的双重链接列表。此链接…

MVC自动配置原理---SpringBoot

MVC自动配置原理 官网阅读 在进行项目编写前&#xff0c;我们还需要知道一个东西&#xff0c;就是SpringBoot对我们的SpringMVC还做了哪些配置&#xff0c;包括如何扩展&#xff0c;如何定制。 只有把这些都搞清楚了&#xff0c;我们在之后使用才会更加得心应手。途径一&…

struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息

easyui是jquery中很强大的插件&#xff0c;我们开发人员经常会遇到比较复杂的布局&#xff0c;或者在实现某个功能的时候要写好多的代码&#xff0c;比如说分页&#xff0c;那么easyui的datagrid就把他给代替了&#xff0c;现在我简要的分享几个案例。 我们先创建一个员工的实体…

idea合并分支 idea git 合并分支

当前在dev上面 将dev_yjb合并到dev上面 idea git 合并分支 awesome_go 2018-07-12 16:22:20 50149 收藏 52 分类专栏&#xff1a; git idea git的使用&#xff08;四&#xff09;git建立分支与合并分支 作者&#xff1a;马育民 • 2017-11-10 17:05 • 阅读&#xff1a;10…

.NET Core New csproj 如何发布可执行文件

一、前言 .NET工具链在最新的Preview3版本中&#xff0c;引入了新的MSBuild项目系统&#xff0c;项目文件又回归了.csproj的XML文件来管理&#xff0c;项目文件、包引用、程序集引用、.NET Core工具集、发布内容定义等内容。本文主要将主要讨论&#xff0c;如何在新的项目系统中…

xshell linux cmd命令大全,Linux(Xshell)命令大全

对Linux的操作经常是使用Xshell工具&#xff0c;这里特地整理了一些Linux比较常用的快捷键和命令&#xff0c;分享给大家&#xff0c;希望对大家有所帮助^ _ ^一、Linux常用快捷键Ctrl Z &#xff1a;退出Ctrl insert &#xff1a;复制Shift insert &#xff1a;粘贴Tab &am…

java.util.Stack类简介

转载自 java.util.Stack类简介 Stack是一个后进先出&#xff08;last in first out&#xff0c;LIFO&#xff09;的堆栈&#xff0c;在Vector类的基础上扩展5个方法而来 Deque&#xff08;双端队列&#xff09;比起Stack具有更好的完整性和一致性&#xff0c;应该被优先使用…

作为 IT 行业的过来人,你有什么话想对后辈说的?2

1 本人本硕机械工程&#xff0c;目前就职于阿里巴巴淘宝无线事业群&#xff0c;摸爬滚打三年还是能给大家提供点建议。 1、至少每周坚持复盘。这是最重要的习惯&#xff0c;可能大家在学校都有这种印象&#xff0c;明明一本书看过/一道题做过&#xff0c;重新复习的时候感觉什…

struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息

现在请大家看看Dept的实体类和对应的映射信息&#xff1a; Dept实体类 package org.entity;import java.util.HashSet; import java.util.Set;/*** Dept entity. author MyEclipse Persistence Tools*/public class Dept implements java.io.Serializable {// Fieldsprivate I…

.NET Core 首例 Office 开源跨平台组件(NPOI Core)

前言 最近项目中&#xff0c;需要使用到 Excel 导出&#xff0c;找了一圈发现没有适用于 .NET Core的&#xff0c;不依赖Office和操作系统限制的 Office 组件&#xff0c;于是萌生了把 NPOI 适配并移植到 .NET Core 的想法。 NPOI 的介绍不多说了&#xff0c;不了解的可以看一下…

员工管理系统---SpringBoot

目录结构 全部代码 package com.kuang.config;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;//拦截器 public class LoginHandlerInterceptor implements Hand…

深入Java集合系列之五:PriorityQueue

转载自 深入Java集合系列之五&#xff1a;PriorityQueue 前言 今天继续来分析一下PriorityQueue的源码实现&#xff0c;实际上在Java集合框架中&#xff0c;还有ArrayDeque&#xff08;一种双端队列&#xff09;&#xff0c;这里就来分析一下PriorityQueue的源码。PriorityQu…

linux系统操作大全,Linux系统的常用操作命令大全

From:http://www.xiaoxiaozi.com/2010/11/09/1985/摘自&#xff1a;http://hi.baidu.com/jackywdx/blog/item/393ccf4b64268bf482025cde.html系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostnam…

抹掉所有内容和设置 连接到icloud时出错 iphone还原出厂设置

设置-》抹掉所有内容和设置 点击设置 在顶部输入框中 输入抹掉 2个子就可以找到 1&#xff0c;点通用&#xff0c;存储用量&#xff0c;如果icloud为不可用&#xff0c; 设置--蜂窝数据-网络为无线网和蜂窝数据&#xff0c;成功的点个赞吧~&#xff01;&#xff08;这个过…

struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)

hibernate.cfg.xml文件&#xff0c;必不可少的一个xml文件&#xff0c;上面附有数据库的用户名&#xff0c;密码&#xff0c;链接字符串&#xff0c;方言等信息&#xff0c;还包含映射的文件路径&#xff1a; <?xml version1.0 encodingUTF-8?> <!DOCTYPE hibernate…

微服务的前世今生

译者&#xff1a;周元昊 与许多人认为的不同&#xff0c;微服务的概念已有相当长的历史&#xff0c;SOA&#xff08;面向服务的体系架构&#xff09;也不是90年代才被提出的。在最近举办的伦敦微服务大会上&#xff0c;Greg Young就微服务核心概念的前世今生进行了演讲。其中他…

linux 查看本机网关地址,linux查看服务器网关地址

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器&#xff0c;帮助用户打造可靠、安全、灵活、高效的应用环境&#xff0c;确保服务持久稳定运行&#xff0c;提升运维效率三年低至5折&#xff0c;多种配置可选了解详情什么是弹性…

非阻塞线程安全列表——ConcurrentLinkedDeque应用举例

转载自 非阻塞线程安全列表——ConcurrentLinkedDeque应用举例 在java中,最常用的数据结构可能是列表。有数目不详的元素列表,你可以添加、阅读、或删除任何位置的元素。此外,并发列表允许不同的线程列表中添加或删除元素时不产生任何数据不一致。非阻塞列表提供如下操作,如果…

整合JDBC---SpringBoot

整合JDBC SpringData简介 对于数据访问层&#xff0c;无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库)&#xff0c;Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。 Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库&#xff0c;Sprin…

struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码

严格按照三层架构来写的&#xff0c;Dao层的代码比较少&#xff0c;我直接把Emp和实现类的都放在这篇文章里面吧&#xff0c; IEmpDao.java接口&#xff1a; /** * Title: IEmpDao.java * Package org.dao * Description: TODO该方法的主要作用&#xff1a; * author A18ccm…