Base64编码解码(文本与文件)

目录

1.什么是base64

2.在java中使用base64

3.在js中使用base64


1.什么是base64

base64编码就是将字符串以每3个比特(bit)的字节子序列拆分为4个6比特(bit)的字节子序列(这个6比特是有效字节,最左边两个永远为0,其实也算是8比特的字节),再将得到的子序列查找base64的编码索引表,得到对应的字符拼接成新的字符串的一种编码方式。

2.在java中使用base64

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;public class Base64Util {/**** BASE64解密* @param key* @return* @throws Exception*/public static byte[] decryBASE64(String key) throws Exception {return (new BASE64Decoder()).decodeBuffer(key);}/**** BASE64加密* @param key* @return* @throws Exception*/public static String encryptBASE64(byte[] key) {return (new BASE64Encoder()).encode(key);}/*** 文件的base64加密解密* @param filePath* @return*/public static void BASE64File(String filePath){try {// 读取文件内容Path path = Paths.get(filePath);byte[] fileContent = Files.readAllBytes(path);// Base64编码String encodedString = Base64.getEncoder().encodeToString(fileContent);System.out.println("Base64编码结果:");System.out.println(encodedString);// Base64解码byte[] decodedBytes = Base64.getDecoder().decode(encodedString);System.out.println("Base64解码结果:");String decodedString = new String(decodedBytes);System.out.println(decodedString);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception {String base64 = encryptBASE64("hello world".getBytes(StandardCharsets.UTF_8));System.out.println("base64编码后:"+base64);System.out.println("base64解码:"+new String(decryBASE64(base64)));BASE64File("C:\\Users\\Administrator\\Desktop\\helloworld.txt");//本地文件路径}}

结果如下:

使用的文件如下:

3.在js中使用base64

// Base64编码
var originalString = 'Hello, World!';
var encodedString = btoa(originalString);
console.log('Base64编码结果:', encodedString);// Base64解码
var decodedString = atob(encodedString);
console.log('Base64解码结果:', decodedString);

具体的案例可参考如下:如果您需要在浏览器环境中处理文件的Base64编码,可以使用FileReader来读取文件内容,并使用btoa()函数将内容转换为Base64编码字符串。以下是一个简单的示例代码,演示了如何在浏览器环境中将文件内容进行Base64编码:

// 选择文件并读取内容
var input = document.createElement('input');
input.type = 'file';
input.onchange = function(e) {var file = e.target.files[0];var reader = new FileReader();reader.onload = function(e) {var fileContent = e.target.result;var base64String = btoa(fileContent);console.log('文件的Base64编码结果:', base64String);};reader.readAsBinaryString(file);
};
input.click();

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

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

相关文章

xilinx原语介绍及仿真——ODELAYE2

7系列IO模块相关的结构如图1所示,前文对IOB、IDELAYE2、ILOGIC、OLOGIC进行了讲解,还剩下ISERDESE2、OSERDESE2、ODELAYE2原语,本文对ODELAYE2进行讲解,该原语只有HP bank才有,即7系列FPGA的A7系列没有ODELAYE2结构&am…

探索太空深渊:计算机技术在航天领域的无限可能

探索太空深渊:计算机技术在航天领域的无限可能 一、引言 在21世纪的科技浪潮中,太空探索和计算机技术无疑是两个最为璀璨夺目的领域。它们各自的发展都足以改变人类社会的未来,而当这两者交汇时,所激发出的创新和变革更是超乎我…

git-lfs基本知识讲解

目录 1. 基本知识2. 安装 1. 基本知识 git-lfs 是 Git Large File Storage 的缩写,是 Git 的一个扩展,用于处理大文件的版本控制。 它允许你有效地管理和存储大型二进制文件,而不会使 Git 仓库变得过大和不稳定。以下是一些与 git-lfs 相关…

Java:自定义Enum

Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一年的 12 个月份,一个星期的 7 天,方向有东南西北等。 一、常量: Java 枚举类使用enum关键字来定义,各个常量使用逗号“,”来…

IIS如何本地部署网站,作为局域网内的服务器

文章目录 IIS本地部署WebService1.使用IIS及WebService的原因:2.相关文件说明及网络条件说明:(1)文件说明:(2)网络条件说明: 3.IIS安装与配置:第一步:安装第二步&#xf…

01--二分查找

一. 初识算法 1.1 什么是算法? 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算 不正式的说,算法就是任何定义优良的计算过程:接收一些值作为输入,在有限的时间…

介绍一款上传漏洞fuzz字典生成工具

介绍一款上传漏洞fuzz字典生成工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 upload-fuzz-dic-builder是一个上传漏洞fuzz字典生成脚本,生成时给的上传点相关信息越详细,生成的字典越精确 upload-fuzz-dic-builder 2.安装 克隆项目: git clone git@github.com:c…

CTF-文件包含(1)

南邮杯CTF 文件包含 题目地址:asdf 点击后利用file函数对show.php进行文件利用 使用伪协议php://filter/readconvert.base64-encode/resourceindex.php访问index.php文件 base64解码后得到flag [极客大挑战 2019]Secret File 题目地址:BUUCTF在线评测 …

用23种设计模式打造一个cocos creator的游戏框架----(十九)备忘录模式

1、模式标准 模式名称:备忘录模式 模式分类:行为型 模式意图:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态 结构图: 适用于: …

mysql汇总

一、多个模糊条件查询 regexp 1、group_concat 连接 distinct 去重 SEPARATOR ’,‘ 逗号分割 select FIELD_NAME 字段中文名,GROUP_CONCAT(DISTINCT FIELD_CODE SEPARATOR ‘,’) 字段英文名 from da_dp_table_field where FIELD_NAME regexp ‘用户编码|客户编码’ and DEL_…

遥感图像识别和地理信息系统集成应用的优势有哪些

遥感图像识别和地理信息系统集成应用的优势主要包括: 宏观观测能力强:遥感技术获取的图像数据空间范围比地面观测视角范围要大得多,且不受地形地貌的影响。这不仅拓宽了人们的视觉空间,为宏观地掌握地面事物的现状情况创造了极为…

我的网站服务器被入侵了该怎么办?

最近有用户咨询到德迅云安全,说自己再用的网站服务器遇到了入侵情况,询问该怎么处理入侵问题,有什么安全方案可以解决服务器被入侵的问题。下面,我们就来简单讲下服务器遇到入侵了,该从哪方面入手处理,在预…

不想学习只想摆烂系列之GUIjava项目

知道GUI框架怎么写就行 1.定义jFRame 2.分开写测试类 3.给几个按钮 4.负责提供测试器 这样就把框架打好了 主程序-继承某个类 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class RadioB…

shell编程-xargs命令详解(超详细)

文章目录 一、引言二、命令格式和选项三、示例用法四、注意事项和常见问题五、扩展应用六、总结七、参考文献 一、引言 本文将介绍Unix/Linux系统中的xargs命令,该命令是一个强大的命令行工具,用于将标准输入的数据转换为命令行参数。它可以帮助我们处理…

Stable-Diffusion|文生图 完蛋我被美女包围了人物Lora(四)

前面几篇: Stable-Diffusion|window10安装GPU版本的 Stable-Diffusion-WebUI遇到的一些问题(一) 【Stable-Diffusion|入门怎么下载与使用civitai网站的模型(二)】 Stable-Diffusion|文生图 拍立得纪实风格的Lora 图例&…

线性代数(一)

1.标量:标量由只有⼀个元素的张量表⽰。 x np.array(3.0) y np.array(2.0) x y, x * y, x / y, x ** y (array(5.), array(6.), array(1.5), array(9.))2.向量:向量可以被视为标量值组成的列表,列向量是向量的默认⽅向。 x np.arange(4…

Vue3-09-条件渲染-v-show 的基本使用

v-show 的作用 v-show 可以根据条件表达式的值【展示】或【隐藏】html 元素。v-show 的特点 v-show 的实现方式是 控制 dom 元素的 css的 display的属性, 因此,无论该元素是否展示,该元素都会正常渲染在页面上, 当v-show 的 条件…

【Linux】cp问题,生产者消费者问题代码实现

文章目录 前言一、 BlockQueue.hpp(阻塞队列)二、main.cpp 前言 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用…

3.2【窗口】窗口的几何形状(一,窗口类型)

一,窗口几何简介 窗口的几何形状由一组属性定义,这些属性指示窗口及其内容的显示方式。定义窗口几何形状的属性集可分为两组:与显示相关的属性和与内容相关的属性。 设置与显示相关的属性需要了解显示坐标系和窗口层次结构。原因是与显示相关的属性用于在显示上调整窗口的…

Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小

需求: Java实现对图片压缩指定大小。比如1260*945。如果图片尺寸大于,就压缩。小于,就拉伸到指定大小 代码实现: import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.F…