输入文本或Base64字符串,一键完成Base64编码与解码,支持中文UTF-8。纯本地运行,数据不上传,保护隐私。
你往数据库里存了一张图片,取出来的时候发现全变成了问号——因为二进制数据里有很多字节无法用文本协议直接传输。Base64就是解决这个问题的:它把每3个字节拆成4组、每组6位,再映射成A-Z、a-z、0-9加号和斜线这64个可打印字符,让二进制数据可以安全地穿过只认文本的通道。但有一点经常被误解——Base64只是换了身"衣服",并没有加锁,任何人拿到编码结果都能原样还原,千万别当加密用。
前端项目里把几KB的小图标转成Base64嵌进CSS文件,省掉一个HTTP请求。调试JWT登录令牌时,把Payload那段Base64粘进来解码,看看里面的用户ID和过期时间。邮件附件的传输编码也是Base64,你可以把附件转成Base64看看它实际占了多少字符。API对接时如果对方要求传二进制数据,先编码成Base64再放进JSON字段是最省事的方案。
切换到「编码」标签,在左侧输入任意文本(包括中文),右侧立刻显示Base64结果,点复制按钮即可取走。切换到「解码」标签,把Base64字符串粘进去,右侧还原出原始文本。图片转码功能在第三个标签页,上传一张图片后自动生成data:image/png;base64,...格式的字符串,直接粘贴到HTML的img标签src属性中即可显示图片。
不能。它只是把二进制数据换成了64种可打印字符来表示,换的是"外衣"不是"锁"。任何人拿到Base64字符串都能直接还原出原文,没有任何密钥机制。如果你需要保护敏感数据,请使用AES、RSA等真正的加密算法。
正常。Base64的原理是每3个原始字节拆成4个字符来表示,所以输出长度固定是输入的约1.33倍。多出来的部分是为了让二进制数据能安全通过只支持文本的通道,这个膨胀是必要代价。对于几KB的小文件影响不大,但不建议对大文件做Base64编码。
不建议手动去掉。等号是补位标记,作用是告诉解码器原始数据的字节长度不是3的整倍数时差了多少。如果删掉,部分解码器可能无法正确还原数据。1个等号说明原数据多了2字节,2个等号说明多了1字节,解码时程序靠它来截断多余的部分。
那串看似乱码的字符其实就是正确的Base64编码结果。中文字符在UTF-8编码下通常占3个字节,编码后会变成4个Base64字符,所以"你好"编码后是5L2g5aW9这样的一串。解码时只要按UTF-8还原就不会乱码,本工具内部默认就使用UTF-8编码。