编码解码工具 之 Base16编码/解码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码解码工具 之 Base16编码/解码相关的知识,希望对你有一定的参考价值。

参考技术A Base16编码使用16个ASCII可打印字符(数字0-9和字母A-F)对任意字节数据进行编码。Base16先获取输入字符串每个字节的二进制值(不足8比特在高位补0),然后将其串联进来,再按照4比特一组进行切分,将每组二进制数分别转换成十进制,在下述表格中找到对应的编码串接起来就是Base16编码。

Base16编码的方式:

1.将数据(根据ASCII编码,UTF-8编码等)转成对应的二进制数,不足8比特位高位补0。然后将所有的二进制全部串起来,4个二进制位为一组,转化成对应十进制数。

2.根据十进制数值找到Base16编码表里面对应的字符。Base16是4个比特位表示一个字符,所以原始是1个字节(8个比特位)刚好可以分成两组,也就是说原先如果使用ASCII编码后的一个字符,现在转化成两个字符。数据量是原先的2倍。

在线工具链接: http://www.atoolbox.net/Tool.php?Id=930

base 64 以角度编码和解码字符串 (2+)

【中文标题】base 64 以角度编码和解码字符串 (2+)【英文标题】:base 64 encode and decode a string in angular (2+) 【发布时间】:2017-06-17 18:14:51 【问题描述】:

如何使用 base64 对 Angular 2 中的字符串进行编码或解码??? 我的前端工具是 Angular 2。我有一个密码字符串,在将其传递给 API 之前,我需要进行 base64 编码。由于在服务中 base64 编码的字符串将被解码。

所以我正在为 Angular2/Typescript 和一些选项寻找一些 base64 编码/解码库。

谢谢!!!

【问题讨论】:

developer.mozilla.org/en/docs/Web/API/WindowBase64/… 【参考方案1】:

从 Angular 12 开始,btoa()atob() 函数已被弃用。改用这些:

console.log(Buffer.from("Hello World").toString('base64'));
// SGVsbG8gV29ybGQ=
console.log(Buffer.from("SGVsbG8gV29ybGQ=", 'base64').toString('binary'))
// Hello World

注意:你必须显式编码!

【讨论】:

【参考方案2】:

Angular2encodingbase64,可以使用btoa()函数。

例子:-

console.log(btoa("stringAngular2")); 
// Output:- c3RyaW5nQW5ndWxhcjI=

对于Angular2中的base64解码,可以使用atob()函数。

例子:-

console.log(atob("c3RyaW5nQW5ndWxhcjI=")); 
// Output:- stringAngular2

【讨论】:

【参考方案3】:

使用btoa() 进行编码,使用atob() 进行解码

text_val:any="your encoding text";

编码文本:console.log(btoa(this.text_val)); //eW91ciBlbmNvZGluZyB0ZXh0

解码文本:console.log(atob("eW91ciBlbmNvZGluZyB0ZXh0")); //your encoding text

【讨论】:

您想提供帮助真是太棒了,但是这个答案并没有增加任何额外的价值,因为它是已接受答案的副本。在 SO 上,我们希望避免重复。请考虑删除此答案。【参考方案4】:

使用btoa()函数进行编码:

console.log(btoa("password")); // cGFzc3dvcmQ=

要解码,可以使用atob()函数:

console.log(atob("cGFzc3dvcmQ=")); // password

【讨论】:

在使用之前,您可能需要确认您的目标浏览器是否支持:caniuse.com/#search=btoa @edrian 应该没问题,只要您不支持非常旧的 IE 版本。 如何将变量类型转换为 base 64?我使用 FileReader 并得到 base64 字符串作为结果 请注意 btoa() 和 atob() 不支持 utf-8 字符! @Robert 这应该可以工作:***.com/questions/30106476/…【参考方案5】:

使用btoa("yourstring")

更多信息:https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

TypeScript 是 Javascript 的超集,它可以使用现有的 Javascript 库和 Web API

【讨论】:

以上是关于编码解码工具 之 Base16编码/解码的主要内容,如果未能解决你的问题,请参考以下文章

2018-07-17 Base64解码与编码

python3的base64编解码

VC++详解Base64编解码原理以及Base64编解码接口实现(附源码)

Base64编解码是什么?

在 laravel 中解码和移动 base64 编码的图像

Base64 编解码