常用的编码Base64 Base62和Base32区别和使用场景
liuian 2025-03-14 18:45 35 浏览
之前最常用的Base64,但是存在符号问题:“符号类”字符(+, /, =),导致无法进行URL传输。
Base64编码:
Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
Table 1: The Base64 Alphabet
索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 |
0 | A | 17 | R | 34 | i | 51 | z |
1 | B | 18 | S | 35 | j | 52 | 0 |
2 | C | 19 | T | 36 | k | 53 | 1 |
3 | D | 20 | U | 37 | l | 54 | 2 |
4 | E | 21 | V | 38 | m | 55 | 3 |
5 | F | 22 | W | 39 | n | 56 | 4 |
6 | G | 23 | X | 40 | o | 57 | 5 |
7 | H | 24 | Y | 41 | p | 58 | 6 |
8 | I | 25 | Z | 42 | q | 59 | 7 |
9 | J | 26 | a | 43 | r | 60 | 8 |
10 | K | 27 | b | 44 | s | 61 | 9 |
11 | L | 28 | c | 45 | t | 62 | + |
12 | M | 29 | d | 46 | u | 63 | / |
13 | N | 30 | e | 47 | v | ||
14 | O | 31 | f | 48 | w | ||
15 | P | 32 | g | 49 | x | ||
16 | Q | 33 | h | 50 | y |
Base62 编码:多用于安全领域和短URL生成
Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域。本文将介绍对数字进行Base62编码与解码的方法。 主要少了+ 和 - 号。 =号原来座位Base64的结束符。
Base32 编码:适合不区分大小写适合人看的场景。
Base32就是用32(2的5次方)个特定ASCII码来表示256个ASCII码。所以,5个ASCII字符经过base32编码后会变为8个字符(公约数为40),长度增加3/5.不足8n用“=”补足。
这个比较浪费更多的长度。
Base32 is the base-32 numeral system. It uses a set of 32 digits, each of which can be represented by 5 bits (25). One way to represent Base32 numbers in a human-readable way is by using a standard 32-character set, such as the twenty-two upper-case letters A–V and the digits 0-9. However, many other variations are used in different contexts.
Base32 是以 32 为底的数字系统。它使用一组 32 位数字,每个数字可以用 5 位 (2) 表示 5 。以人类可读的方式表示 Base32 数字的一种方法是使用标准的 32 个字符集,例如 22 个大写字母 A–V 和数字 0-9。但是,在不同的上下文中使用了许多其他变体。
The rest of this article discusses the use of Base32 for representing byte strings, not unsigned integer numbers, similar to the way Base64 works.
本文的其余部分讨论如何使用 Base32 来表示字节字符串,而不是无符号整数,类似于 Base64 的工作方式。
可以选择字母表以避免看起来相似的不同符号对,因此可以准确地手动转录字符串。(例如,RFC 4648 符号集省略了 1、8 和 0 的数字,因为它们可能与字母“I”、“B”和“O”混淆。
String a = "伦家是一个非常长的字符串";
String encode = Base32.encode(a);
Assert.assertEquals("4S6KNZNOW3TJRL7EXCAOJOFK5GOZ5ZNYXDUZLP7HTKCOLLMX46WKNZFYWI", encode);
String decodeStr = Base32.decodeStr(encode);
Assert.assertEquals(a, decodeStr);
字符映射表:
可以使用Hutool 进行上面的编码和解码
相关推荐
- 微软office激活密钥2007(office激活密钥 2007)
-
您好!建议您可以下载一个激活工具,激活一下就可以了。祝您生活愉快,望采纳!一般不是在文件夹中,甚至干脆没有相应的密钥文件,有的则可能会有个诸如sn.txt这样的文件,里面存放着安装密钥。如果没有,那么...
- 下载安装百度输入法(百度输入法下载后如何安装)
-
要将默认输入法调为搜狗输入法,可以按照以下步骤进行操作1.打开电脑的“设置”界面;2.点击“时间和语言”选项;3.在“语言”选项卡中,找到“首选语言”一栏;4.点击“添加语言”按钮,选择“中文...
- 联想电脑售后电话号码(联想电脑厂家售后电话)
-
查询方法如下1、打开浏览器输入联想官网网址并转到https://www.lenovo.com.cn/2、点击“服务”在二级菜单点击“服务网点查询”3、选择需要维修的设备选择“联想笔记本”4、此时会显示...
-
- 联想电脑蓝牙驱动下载(联想电脑蓝牙驱动下载地址)
-
以下是安装联想笔记本蓝牙驱动的步骤:1.访问联想官方网站,找到支持选项卡,选择你的笔记本型号和操作系统,下载最新版本的蓝牙驱动程序。2.查看下载的文件,将其解压缩。3.双击解压缩后的文件,运行安装程序。4.安装向导会出现,按照提示完...
-
2026-01-17 22:21 liuian
- 无线网别人可以用我连接上用不了
-
1、关机重启下;2、看下该类的WiFi是不是需要账号跟密码,若是,那么可以跟对应的商家或者运营商索要账号或者密码进行登录;3、删除该网络重新进行连接尝试下;4、更换其他的WiFi信号进行登录,不排除说...
- 我的电脑配置在哪里看(自己的电脑配置在哪里看)
-
1.电脑的配置可以在电脑的系统信息中查看。2.因为电脑的配置信息包括处理器型号、内存容量、硬盘大小等,这些信息可以通过系统信息来获取。3.步骤如下:点击开始菜单,选择“设置”或者“控制面板”,再...
-
- 显卡风扇转速怎么调(显卡风扇转速和温度怎么设置合理)
-
可以通过以下方法调节显卡风扇的转数:1.使用显卡驱动程序中提供的控制工具,一般可以在“高级设置”或“风扇控制”等菜单中找到,然后调节风扇转速的百分比。2.如果你的电脑主板支持,可以在BIOS设置中找到风扇控制选项,手动调节风扇转速。3....
-
2026-01-17 21:37 liuian
-
- 为什么不建议买matebook14(matebook14为什么那么贵)
-
缺点:比想象的重(就是拿在手觉得密度非常高的感觉),不能单手开合而且转轴很硬,玻璃面板没有防粘指纹的设计。散热不好,跑软件玩游戏风扇噪音会很大不是雷电接口不是一体化机身,仔细看边角会有些粗糙没有触摸屏,这个感觉是笔记本必须的,在你没鼠标的情...
-
2026-01-17 21:21 liuian
- 初学者怎么学电脑
-
作为初学者学习电脑,以下是一些建议:1.基本操作系统知识:了解常见的操作系统,如Windows、MacOS等。学习基本的操作技巧,如文件管理、软件安装、网络连接等。2.学习常用软件:学习使用常见...
- 移动硬盘分区好不好(移动硬盘分区好还是不分区好)
-
看个人需要吧。分区优点可以方便数据分类管理,但注意分区数不能过多。缺点:1.一但定了分区的大小,就很难再改变,而事实上人的想法很容易随着时间发生改变的。一但想变,操作会异常困难,不是一般人能轻易搞...
- 2025电脑处理器排行榜(2020年最新电脑处理器排行榜)
-
2021年手机处理器排名:苹果A14Bionic、高通骁龙888、华为麒麟9000、苹果A13、三星Exynos1080、高通骁龙865Plus、高通骁龙865、三星Exynos990、联发科...
- 联想打印机官网售后服务中心
-
1、首先在打印机列表中,或文件打印属性窗口中,选择打印机,打开打印机的属性窗口。再点击首选项。2、打开首选项窗口,在“页面设置”栏中,点击“页面选项”,在打开的新窗口中,依次点击“恢复默认设置”——确...
- office2016密钥激活码免费通用
-
office365没有密钥这一说法。如果需要用office365激活的话,要看你的office2016是什么版本,意思是从哪里下载安装的。如果是以往那种光碟安装或者网上下载的,内置版本其实不一致...
- 误删了微信好友怎么恢复(误删了微信好友怎么恢复聊天记录)
-
1、最简单的方法就是:在微信朋友圈中找到该好友发布过的信息,这个信息是不随着你删除该好友进行删除的。2、第二种简单方法:如果该好友没有在朋友圈发布过微信信息,你可以查找自己的通讯录和QQ好友,如果是通...
- 显卡是什么意思有什么作用(显卡是什么意思有什么作用和用途)
-
显卡的作用是控制电脑的图形输出,它是架接在主机和显示器上的硬件。负责将cpu送过来的影像数据处理成显示器认识的格式并输出也就是人眼在显示器上看到的影像。显卡的主要作用是将CPU提供的指令和数据进行相应...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
