Base64 / URL 在线编解码与 MD5 / SHA256 哈希计算工具

纯前端离线一站式加密解密与哈希工具箱:支持中文字符与 Emoji 的 Base64 编码解码、URL 参数 Encode/Decode 转码,以及标准 MD5 与 SHA-256 摘要哈希极速计算。

常见编解码与哈希算法对比指南

算法/格式 是否可逆 输出长度 核心应用场景
Base64 可逆 ~ 原文本 133% 文本协议传输图片、内联资源、邮件协议附件
URL Encode 可逆 视非ASCII字符而定 HTTP GET 请求 Query 参数中包含特殊标点与汉字转义
MD5 不可逆 32 位十六进制 快速文件完整性校验 (Checksum)、数据指纹生成
SHA-256 不可逆 64 位十六进制 数字证书验签、区块链加密哈希、安全密码存证

常见问题解答 (FAQ)

Q: 为什么在部分网站进行 Base64 编解码时中文会出现乱码?

A: 浏览器原生的 btoa 和 atob 函数仅支持单字节 Latin1 字符(0-255)。遇到多字节的 UTF-8 中文字符或 Emoji 表情时会直接抛出字符越界异常或产生乱码。DevHub 底层统一采用 TextEncoder 与 TextDecoder 处理二进制字节流,实现 100% 汉字与特殊字符安全编解码。

Q: MD5 和 SHA-256 可以被解密吗?

A: MD5 与 SHA-256 是单向散列哈希函数(Hash Function),而非可逆的对称/非对称加密算法,数学上不可逆向解密。网上常见的所谓‘MD5解密’实际上是利用预先计算好的‘彩虹表(Rainbow Table)’进行碰撞反查。建议涉及密码存储时务必配合盐值(Salt)或使用专门的 bcrypt/argon2 算法。

Q: encodeURI 与 encodeURIComponent 有什么区别?

A: encodeURI 用于编码完整的统一资源标识符 (URI),它不会对 URI 中的语义分隔符(如 http://, /, ?, &, =)进行转义;而 encodeURIComponent 会对除了字母数字外的绝大部分标点符号都进行转义,通常用于给 URL 查询参数中的单个 key 或 value 进行安全转码。

Q: 为什么 URL 里空格有时是 %20 有时是 +?

A: %20 是 RFC 3986 的标准百分号编码;+ 是 application/x-www-form-urlencoded 表单提交的历史约定,只在查询串中代表空格。encodeURIComponent 只产出 %20,若后端按表单语义解析就需要把空格换成 +,这是接口联调最常见的坑之一。

Q: 哈希"加盐"是什么意思?还有必要吗?

A: 加盐指哈希前拼接每用户唯一的随机串,使相同密码产出不同摘要,令预计算彩虹表失效。现代建议是直接用 bcrypt/scrypt/argon2 这类自带盐、计算速度可调慢的专用密码哈希算法,而不是裸算一次 MD5/SHA256。

浏览更多 DevHub 生产力工具

JSON 实验室 时间戳转换器 JWT 解码器 正则测试与速查 Cron 表达式工具 UUID 生成器 颜色转换器 AES 加解密 变量命名转换 SQL 格式化 cURL 转代码 Diff 文本对比 JSON 转类型 返回 DevHub 首页