Base64 四种方式的编码和解码

base64与字符串String之间的相互转换

package com.wzq;import javax.xml.bind.DatatypeConverter;
import java.io.UnsupportedEncodingException;
import java.util.Base64;/*** @ClassName Base64Utils* @Description: TODO* @Author wzq* @CreateDate 2019/10/14* @UpdateDate 2019/10/16* @Version V1.0**/
public class Base64Utils {/*** 测试编码  OK*/public static void main(String[] args) throws Throwable {System.out.println("*************************方式一*********************");String encode1 = Base64Encode("在线加密解密测试", "UTF-8");System.out.println("Encode1 " + encode1);String decode1 = Base64Decode(encode1, "UTF-8");System.out.println("decode1 " + decode1);System.out.println("*************************方式二*********************");String encode2 = encode2("在线加密解密测试", "UTF-8");System.out.println("encode2 "+encode2);String decode2 = decode2(encode2, "UTF-8");System.out.println("decode2 "+decode2);System.out.println("*************************方式三*********************");String encode3 = encode3("在线加密解密测试", "UTF-8");System.out.println("encode3 "+encode3);String decode3 = decode3(encode3, "UTF-8");System.out.println("decode3 "+decode3);System.out.println("*************************方式四*********************");String encode4 = encode4("在线加密解密测试", "UTF-8");System.out.println("encode4 "+encode4);String decode4 = decode3(encode4, "UTF-8");System.out.println("decode4 "+decode4);}/*****************************************方式一**********************************************//***************使用jdk自带的DatatypeConverter.java类实现,但是jdk版本必须>=1.6。****************//*** base64编码** @param result* @param encodeType* @return* @throws UnsupportedEncodingException*/public static String Base64Encode(String result, String encodeType) throws Throwable {try {byte[] data = result.getBytes(encodeType);return DatatypeConverter.printBase64Binary(data);} catch (Exception e) {throw new Throwable("base64编码错误");}}/*** base64解码** @param encodeType* @param result* @return*/public static String Base64Decode(String result, String encodeType) throws Throwable {try {byte[] data = DatatypeConverter.parseBase64Binary(result);return new String(data, encodeType);} catch (Exception e) {throw new Throwable("base64解码");}}/*****************************************方式二**********************************************//*******************使用jdk自带的Base64.java类实现,但是jdk版本必须>=1.8。***********************//*** base64编码** @param str* @param encodeType* @return* @throws UnsupportedEncodingException*/public static String encode2(String str, String encodeType) throws UnsupportedEncodingException {byte[] data = str.getBytes(encodeType);return Base64.getEncoder().encodeToString(data);}/*** base64解码** @param result* @param encodeType* @return*/public static String decode2(String result, String encodeType) throws UnsupportedEncodingException {byte[] data = result.getBytes(encodeType);byte[] decode = Base64.getDecoder().decode(data);return new String(decode,encodeType);}/*****************************************方式三**********************************************//** 使用cn.hutool.core.codec.Base64类实现* <dependency>*     <groupId>cn.hutool</groupId>*     <artifactId>hutool-all</artifactId>*     <version>4.5.0</version>* </dependency>*//*** base64编码** @param str* @param encodeType* @return* @throws UnsupportedEncodingException*/public static String encode3(String str, String encodeType) throws UnsupportedEncodingException {return cn.hutool.core.codec.Base64.encode(str,encodeType);}/*** base64解码** @param result* @param encodeType* @return*/public static String decode3(String result, String encodeType) throws UnsupportedEncodingException {return cn.hutool.core.codec.Base64.decodeStr(result,encodeType);}/*****************************************方式四**********************************************//** 使用org.apache.commons.codec.binary.Base64类实现* <dependency>*     <groupId>commons-codec</groupId>*     <artifactId>commons-codec</artifactId>*     <version>1.11</version>* </dependency>*//*** base64编码** @param str* @param encodeType* @return* @throws UnsupportedEncodingException*/public static String encode4(String str, String encodeType) throws UnsupportedEncodingException {return org.apache.commons.codec.binary.Base64.encodeBase64String(str.getBytes(encodeType));}/*** base64解码** @param result* @param encodeType* @return*/public static String decode4(String result, String encodeType) throws UnsupportedEncodingException {return new String(org.apache.commons.codec.binary.Base64.decodeBase64(result),encodeType);}}

输出打印:

 

在线测试:成功

微信公众号,感谢关注。持续更新...

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

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

相关文章

邮件服务器“单点登录”功能

现状分析&#xff1a; 相信我们每个人都有这样的经历&#xff0c;比方说银行卡多的人要具体记忆每张卡的密码挺麻烦&#xff1b;现代人兴 趣广泛&#xff0c;爱好多多&#xff0c;运动健身俱乐部、娱乐游戏休闲、购物理财等各种场合少不了获得入门的“通行证”&#xff0c;要输…

【kafka】 windows平台搭建及使用

一、安装 kafka 需要java环境&#xff1b;kafka 最新版本内置了 zookeeper&#xff0c;所以不需要安装zookeeper&#xff1b;下载kafka最新版本&#xff0c;因为下载的是tgz文件&#xff0c;所以不需要安装&#xff0c;解压到相应的地方就可以了。下载地址&#xff1a;http://…

Unix/Linux环境C编程入门教程(16) LinuxMint CCPP开发环境搭建

1.Linux Mint由Linux Mint Team团队于2006年开始发行&#xff0c;是一份基于Debian和Ubuntu的Linux发行版。其目标是提供一种更完整的即刻可用体验&#xff0c;这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件&#xff0c;它也增加了一套定制桌面及各种…

Extjs发票管理系统

技术特点&#xff1a;Extjs框架&#xff0c;三层架构&#xff0c;Ajax,json 1.仿office2007菜单.介面美观大方,可动态更改皮肤保存至cookie。 2,json数据源与实体类的相互转换. 3.可下载桌面版登录方式,统计在线人数. 4, chm操作手册,方便操作人员熟悉. 功能描述&#xff1a; 1…

Json串和java对象进行转时

json-lib-xxx.jarezmorph-xxx.jar //>依赖包 JsonConfig config new JsonConfig();//有选择性的过滤掉一些属性值 JSONUtils.getMorpherRegistry().registerMorpher( new DateMorpher(new String[] { "yyyy-MM-dd" }));//注册一个json转为java.util.date的日期格…

Fast Matrix Operations

uva11992:http://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem3143 题意&#xff1a;给你n*m的矩阵初始化的时候矩阵里面的元素全部是0&#xff0c;对于这个矩阵有3中操作。 1 x1 y1 x2 y2 v 把&#xff08;x1 y1 x2…

struts2+jquery 实现ajax登陆

一、新建一个web项目&#xff1a;test,配置好struts2的环境(详细配置见&#xff1a;http://www.cnblogs.com/wuweidu/p/3841297.html) 导入Jquery的js文件到项目 二、在com.action包下&#xff0c;新建一个loginAction.java loginAction.java的代码如下 package com.action;imp…

Docker Kafka 单机版安装

一、安装 下载library/zookeeper并运行 docker run --name zookeeper -d -p 2181:2181 -v /etc/localtime:/etc/localtime library/zookeeper 测试zookeeper端口是否通wget IP:2181 下载wurstmeister/kafka并运行 docker run -d --name kafka -p 9092:9092 --link zookeeper…

Docker 安装nginx,并挂载文件

创建挂载所需目录&#xff1a; mkdir /test/server/nginx/{conf,logs,html,conf.d} /test/server/nginx/conf创建nginx.conf文件&#xff0c;并编辑: user nginx; worker_processes 1;error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;events {wor…

ArrayList 源码分析

介绍 ArrayList 是一个数组队列&#xff0c;相当于 动态数组。与Java中的数组相比&#xff0c;它的容量能动态增长。 结构 ArrayList继承于AbstractList&#xff0c;实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。如下图&#xff1a; public class Arra…

Docker 简单入门(一)

Docker 简介 Docker是一个开源的容器引擎&#xff0c;它有助于更快地交付应。Docker可将应用程序和基础设施层隔离&#xff0c;并且能将基础设施当作程序-样进行管理。使用Docker&#xff0c;可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 Docke…

PDF解决方案(2)--文件转PDF

相关专题链接&#xff1a; PDF解决方案&#xff08;1&#xff09;--文件上传 PDF解决方案&#xff08;2&#xff09;--文件转PDF PDF解决方案&#xff08;3&#xff09;--PDF转SWF PDF解决方案&#xff08;4&#xff09;--在线浏览 前言&#xff1a;上一篇中讲到的文件上传&…

Docker 常用命令(二)

Docker 镜像常用命令 搜索镜像 可使用 docker search 命令搜索存放在 Docker Hub 中的镜像。例如&#xff1a; docker search java 执行该命令后&#xff0c; Docker 就会在 Docker Hub 中搜索含有 java 这个关键词的镜像仓库。执行该命令后&#xff0c;可看到类似于如下的表格…

Docker 使用Dockerfile构建Docker(三)

Dockerfile 简单使用 先来编写一个最简单的 Dockerfile。 例如&#xff1a; FROM nginx RUN echo <h1>使用Dockerfile构建镜像</h1> > /usr/share/nginx/html/index.html 该 Dockerfile 非常简单&#xff0c;其中的 FORM 、 RUN 都是 Dockerfile 的指令。 FROM …

网络流之最大流问题

Reference&#xff1a; http://blog.csdn.net/rrerre/article/details/6751520 http://blog.csdn.net/y990041769/article/details/21026445 http://www.nocow.cn/index.php/Translate:USACO/NetworkFlow 最大流Edmonds_Karp算法模板&#xff1a; EK算法即增广路算法。 最大流最…

浅谈 trie树 及其实现

定义&#xff1a;又称字典树&#xff0c;单词查找树或者前缀树&#xff0c;是一种用于快速检索的多叉树结构&#xff0c; 如英文字母的字典树是一个26叉树&#xff0c;数字的字典树是一个10叉树。 核心思想&#xff1a;是空间换时间.利用字符串的公共前缀来降低查询时间的开销以…

Docker-compose 安装与基本使用(四)

安装 Docker-Compose Compose有多种安装方式,例如通过 shell, pip以及将 Compose作为容器安装等。本次安装以Shell 为主。 通过以下命令自动下载并安装适应系统版本的 Compose: curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(un…

git pull 报错:Untracked Fles Preventing Merge

场景 使用 git pull 命令更新报错解决 找到对应的文件删除后重新打开项目。

SpringBoot 配置多数据源

项目Git地址&#xff1a;SpringBoot 配置多数据源&#xff1a;Jacob-multi-data-source 准备工作 准备两个数据库(此模块中两个数据库一个为本地 一个为远程&#xff0c;本地为主&#xff0c;远程为从)。然后建表。 #本地库 CREATE TABLE username (id bigint(11) NOT NULL AUT…

微服务之基础知识

什么是微服务架构 微服务是系统架构上的一种设计风格&#xff0c; 它的主旨是将一个原本独立的系统拆分成多个小型服务&#xff0c;这些小型服务都在各自独立的进程中运行&#xff0c;服务之间通过基于HTTP的RESTful API进行通信协作。 被拆分成的每一个小型服务都围绕着系统中…