Base64 编码
在下方粘贴文本并点击编码将其转换为Base64。支持UTF-8文本。所有处理均在浏览器中本地完成。
已复制!
什么是Base64编码?
Base64是一种将二进制数据表示为ASCII字符串的编码方案。它常用于在HTML/CSS中嵌入图像、在URL中传输数据、编码电子邮件附件(MIME),以及在JSON或XML中存储复杂数据。
该编码使用64个字符:A-Z、a-z、0-9、+ 和 /,以 = 作为填充符。
本页使用浏览器自带的 Base64 函数编码,因此结果与任何标准库完全一致:标准字符集、等号填充、单行输出。不上传,也不保存。
正在排查一个死活解不开的问题?
解不开的数据包通常是症状而不是病根:链路上某处做了两次编码、字符集是被假定而不是被声明、令牌签名所覆盖的字节和大家以为的并不完全一致。这类活我们在做,围绕集成、API 以及在它们之间传递数据的系统。
说说哪里出了问题常见问题
Base64 编码用来做什么?
它的用途是让字节通过那些只能可靠传输文本的通道。邮件附件、CSS 和 HTML 里的 data URI、必须装下一个文件的 JSON 字段、PEM 格式的密钥与证书,以及 HTTP 基本认证头,用的都是它。它既不是压缩也不是加密,只是用 64 个几乎能挺过任何传输的字符把任意字节拼写出来。
为什么 Base64 会比原始数据大约三分之一?
因为它用四个字符表示三个字节。三个字节是 24 位,Base64 把它切成四组六位,每组变成一个字符。这是四比三的固定比例,也就是多出约 33%,而且这还没算上填充和换行。
Base64 算是一种加密吗?
不是,而把它当成加密正是关于它最常见的误解。这里没有密钥,也没有任何秘密:任何人一步就能解开一段 Base64,包括本页面。它只是让数据躲过随意的一瞥,以及躲过那些吃不下原始字节的软件,仅此而已。内容若需要保护,请先加密,若传输要求文本,再把密文做 Base64。
标准 Base64 和 URL 安全 Base64 有什么区别?
差别就在两个字符。标准 Base64 用加号和斜杠表示 62 和 63,而这两个字符在 URL 里本来就有含义,出现在其中会被百分号编码。URL 安全的变体把它们换成连字符和下划线。本页输出的是标准字符集;若你需要 URL 安全形式,事后把这两个字符替换掉即可。
该把图片以 Base64 内联进 CSS 吗?
有时值得,前提是图片非常小。内联省下一次请求,这在过去意义重大;但它也让图片大出约三分之一,使其无法与承载它的文件分开缓存,并且要等整块数据解析完,那份样式表才算就绪。大致的界线是:几百字节的图标划算,超过两三千字节就很少划算。在 HTTP/2 和 HTTP/3 下,省下的这一次请求远不如从前值钱。