string - Base64长度计算?

标签 string base64 padding formula

阅读完 base64 wiki 后...

我正在尝试弄清楚公式是如何工作的:

给定长度为 n 的字符串,base64 长度将为 enter image description here

即:4*Math.Ceiling(((double)s.Length/3)))

我已经知道 base64 长度必须为 %4==0 才能让解码器知道原始文本长度是多少。

序列的最大填充数可以是 ===

wiki :The number of output bytes per input byte is approximately 4 / 3 (33% overhead)

问题:

如何上述信息与输出长度 enter image description here 的关系?

最佳答案

每个字符用于表示 6 位 (log2(64) = 6)。

因此用4个字符来表示4 * 6 = 24位= 3字节

因此您需要 4*(n/3) 个字符来表示 n 个字节,并且需要四舍五入为 4 的倍数。

由于四舍五入为 4 的倍数而产生的未使用填充字符的数量显然将是 0、1、2 或 3。

关于string - Base64长度计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378815/

相关文章:

java - Java 验证字符串

arrays - 结构体填充数组

ios - UITextField 填充

css - 浏览器上填充的差异

LINQ 将字符串转换为日期时间

c++ - 从 void* 转换为字符串 libwebsocket

java - 将 EditText 获取为 String,然后显示在 Toast 中

android - 从字符串 Base64 到位图的 Covert 问题

node.js - 加密CryptoJS,不带特殊字符

sql - Redshift 中的 Base64 解码