自由转换文本和 HTML 实体
使用 HTML 编解码器非常简单:
HTML 编解码器在 Web 开发和内容创建中用于以下情况:
在 HTML 电子邮件模板中安全显示包含特殊字符的文本。在保持电子邮件客户端兼容性的同时正确显示符号和引号。
当直接在 HTML 或 CSS 中嵌入小图像或图标时,会使用 Base64 编码的数据 URL。这可以减少 HTTP 请求并提高页面加载速度。
在 HTTP 基本验证中,用户名和密码会用冒号 (:) 组合并进行 Base64 编码,以包含在验证标头中。
JWT 的标头和有效负载部分是使用 Base64URL 编码 (Base64 的变体) 来表示。
以 JSON 格式传输二进制数据时,会使用 Base64 编码将其转换为文本格式。
Base64 是一种编码方法,它使用 64 个可打印的 ASCII 字符来表示二进制数据。名称 "64" 来自于它使用 64 个字符 (2 的 6 次方) 的事实。
Base64 编码将 3 个字节 (24 位) 的数据分成四个 6 位单元,并将每个单元映射到上述 64 个字符中的一个。
原始文本: "Hello" 二进制表示: 01001000 01100101 01101100 01101100 01101111 Base64 结果: SGVsbG8=
当数据大小不是 3 的倍数时,会在末尾添加 "=" 进行填充。
即使在只支持文本的系统中 (例如旧版电子邮件系统),使用 Base64 编码也能安全地传输二进制数据,防止数据损坏。
由于 Base64 只使用 ASCII 字符,因此在不同系统之间交换数据时不会出现字符编码问题。
使用 Base64URL 编码 (将 + 替换为 -,/ 替换为 _) 可让您生成能安全用于 URL 和文件名的字符串。
通过将图像和字体直接嵌入 CSS 和 HTML 文件中,您可以减少对外部文件的请求并提高页面性能。
如果您需要保护机密数据,请使用 AES-256 等强加密算法。
是的,它们基本上是同一个意思。两者都是指将 HTML 特殊字符转换为 HTML 实体。"转义" 是一个通用的编程术语,而 "编码" 是从字符转换的角度使用的。
至少应将 <、>、&、" 和 ' 这五个字符转换为实体。特别是 < 和 > 是必需的,因为它们被解释为 HTML 标签。在显示用户输入时,应将所有特殊字符转换为实体以防止 XSS 攻击。
数字实体(<)用 Unicode 字符代码表示,可用于所有字符。命名实体(<)用可读名称表示,但仅限于 HTML5 中定义的约 2,000 种类型。两者功能相同。
它们是 PHP 的 htmlentities() 函数的标志。ENT_QUOTES 对单引号和双引号都进行编码,ENT_HTML5 使用符合 HTML5 的实体集。此工具结合两者以进行最安全的转换。
不会,正确使用 UTF-8 编码的日语等多字节字符可以在 HTML 中按原样显示,无需转换为实体。但是,它们也可以表示为数字实体(あ = あ)。
不是,HTML 实体转换不是加密,而只是字符表示的改变。从安全的角度来看,它是为防止 XSS 攻击而进行的 "转义",与保护数据机密性的加密不同。
每种语言都有专用函数。PHP: htmlentities()、JavaScript: textContent (自动转义)、Python: html.escape()、Java: StringEscapeUtils.escapeHtml4()、Ruby: CGI.escapeHTML() 等都可用。
字符编码(UTF-8、Shift_JIS 等)可能不匹配。此外,不完整的实体(< 后面没有分号等)或多次编码的数据(&lt; → < → < 需要两次解码)可能是原因。
Encode and decode URLs
Encode and decode Base64
Remove all HTML tags and extract plain text
Encode image data in Base64
Generate MD5, SHA-1, SHA-256, and other hashes