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;它也增加了一套定制桌面及各种…

@TableLogic注解表示逻辑删除

TableLogic注解表示逻辑删除 效果&#xff1a;在字段上加上这个注解再执行BaseMapper的删除方法时&#xff0c;删除方法会变成修改 场景&#xff1a; 1.实体类中属性加上TableLogic, TableLogic private Integer dataStatus; 2.调用BaseMapper的deleteById(id)或…

图片上传至本地

1.配置文件 bootstrap.yml file:path:httpResURL: http://122.246.1.148:19086SAVE_PATH: /data/imagesresURI: /wzq/ 2.文件工具类 import cn.hutool.core.io.FileUtil; import com.vinsuan.park.platform.biz.FilePathConfig; import lombok.AllArgsConstructor; import lo…

html调用静态json例子

html调用静态json例子 1.json {"current": 2,"result": "success" } 1.html <!doctype html> <html> <head> <meta charset"utf-8"> <title></title> <script src"http://code.jquery.co…

Extjs发票管理系统

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

jQuery调用WebService返回JSON数据

相信大家都比较了解JSON格式的数据对于ajax的方便&#xff0c;不了解的可以从网上找一下这方面的资料来看一下&#xff0c;这里就不多说了&#xff0c;不清楚的可以在网上查一下&#xff0c;这里只说一下因为参数设置不当引起的取不到返回值的问题。 在用jQuery调用WebService的…

Docker---问题1:bash: vi: command not found/bash: vim: command not found

在使用docker时&#xff0c;有时候我们需要编辑配置文件&#xff0c;需要使用vim或者vi命令&#xff0c;发现&#xff1a; root64801a03b121:/etc/nginx/conf.d# vi default.conf bash: vi: command not found root64801a03b121:/etc/nginx/conf.d# vim default.conf bash: …

C# 获取配置文件节点值

<?xml version"1.0" encoding"utf-8" ?><configuration> <appSettings> <add key"ManagerName" value"XXX" /> </appSettings> <connectionStrings> <add name"DataBase"…

WHENEVER SQLERROR EXIT SQL.SQLCODE

1.SQL>WHENEVER SQLERROR EXIT SQL.SQLCODE出现错误后终止SQL*Plus运行。2.SQL>WHENEVER SQLERROR SQL.SQLCODE EXIT ROLLBACK 除了之前的含义&#xff0c;还包括让SQL*Plus在推出之前把所有还没提交的变化回滚处理。转载于:https://www.cnblogs.com/nuaa/p/3828473.html…

IDEA 快捷键终极大全

一、自动代码 常用的有fori/sout/psvmTab即可生成循环、System.out、main方法等boilerplate样板代码 。 例如要输入for(User user : users)只需输入user.forTab &#xff1b; 再比如&#xff0c;要输入Date birthday user.getBirthday()只需输入user.getBirthday().varTab即…

数组中只出现一次的数字

题目&#xff1a;一个整型数组里&#xff0c;除了两个数字以外&#xff0c;其他数字都出现了两次&#xff0c;请写程序找到这两个只出现一次的数字。要求&#xff1a;时间复杂度为O(n),空间复杂度为O(1). 分析&#xff1a;看到这题&#xff0c;首先要明白&#xff0c;这是求两个…

iOS工作笔记之NSClassFromString

id myObj [[NSClassFromString("MySpecialClass") alloc] init]; 和 id myObj [[MySpecialClass alloc] init]; 是一样的。但是&#xff0c;如果你的程序中并不存在MySpecialClass这个类&#xff0c;下面的写法会出错&#xff0c;而上面的写法只是返回一个空对象而…

Maven 使用bat批量清除本地仓库的lastUpdated文件

echo off set REPOSITORY_PATHC:\Users\Administrator\.m2\repository rem 正在搜索... for /f "delims" %%i in (dir /b /s "%REPOSITORY_PATH%\*lastUpdated*") do ( del /s /q %%i ) rem 搜索完毕 pause 新建一个文件txt文件&#xff0c;把.txt后缀…

“ddl”有一个无效 SelectedValue,因为它不在项目列表中。

“ddl_ekt”有一个无效 SelectedValue,因为它不在项目列表中。 怎么回事 现象&#xff1a; 在用户控件的page_load事件里绑定下拉框&#xff0c;报上面错误 解决&#xff1a; 将下拉框绑定&#xff0c;放在page_Init事件里 这可能跟服务器加载控件的生命过程有关系转载于:https…

springbot 注入多实例

方式一&#xff1a; 在需要多实例的类上加入注解&#xff1a; Scope("prototype") 方式二&#xff1a; 在启动类上加入&#xff1a; BeanScope(value ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode ScopedProxyMode.TARGET_CLASS)public PrototypeClass…

javascript日历插件

javascript日历插件 原文:javascript日历插件javascript日历插件 最近在尝试着写javascript日历插件&#xff0c;所以也到github上看国外人日历源码&#xff0c;或者国内人写的好点的&#xff0c;也在研究点&#xff0c;虽然看到网上有一大把的日历控件&#xff0c;但是没有几个…

idea 重启

1、通过File–>Invalidate Caches/Restar...进入重启窗口 2、选择自己所需要的重启方式&#xff0c;四个按钮&#xff0c;一共三种重启方式&#xff1a; Invalidate and Restart 清空缓存并重启。Invalidate 清除缓存&#xff0c;下次打开重启。Cancel 取消。Just Restart …

Kernel Page Global Directory (PGD) of Page table of Process created in Linux Kernel

Kernel Page Global Directory (PGD) of User process created 在早期版本: 在fork一个进程的时候&#xff0c;必须建立进程自己的内核页目录项&#xff08;内核页目录项要与用户空间的页目录放在同一个物理地址连续的页面上&#xff0c;所以不能共享&#xff0c;但所有进程的内…