SHA256、Base64 与 Uint8Array 的对比与理解

简介 在做密码存储的时候,我遇到了三种常见的数据表示方式:SHA256、Base64 和 Uint8Array(简称 Uint8)。它们各有用途和特点,于是写下这篇文章来总结一下。 SHA256 SHA256 是现代互联网广泛使用的加密哈希算法,例如在区块链、密码存储和数据完整性验证中都很常见。 特点: 将任意长度的输入数据经过数学运算后,输出 256 位二进制数(32 字节)。 几乎不可逆,意味着即使拿到 SHA256 的输出,也很难反推出原始输入。 示例输出(以十六进制表示): e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 缺点:可读性差,尤其是在前端需要显示或传输时不方便。 因此,通常会配合 Base64 或十六进制表示来方便存储和展示。 Base64 Base64 是一种将二进制数据编码为可打印 ASCII 字符的方式。 特点: 每 6 位二进制数映射为一个字符,字符集包含: A-Z, a-z, 0-9, +, / 以及 = 用作填充,使长度为 4 的倍数。 可以将 SHA256 的 32 字节(256 位)输出编码为 44 个 Base64 字符。 为什么是 44 个而不是 43 个?原因如下: Base64 按 每 3 个字节(24 位)为一组 来编码,每组会生成 4 个 Base64 字符。 SHA256 输出 32 字节 → 可以分为 10 组完整的 3 字节 + 剩余 2 字节。 ...

November 24, 2025 · 1 min · 172 words · Guangyang Zhong