MD5哈希 生成器
在浏览器中即时从文本或文件生成MD5哈希值。免费、私密,无需上传。
在浏览器中即时从文本或文件生成MD5哈希值。免费、私密,无需上传。
MD5(消息摘要 5)是 Ronald Rivest 于 1991 年发布的一种 128 位加密哈希函数。它接受任意长度的输入并生成固定的 32 字符十六进制输出,该输出是确定性的(相同的输入总是生成相同的哈希值)并且是单向的,这意味着无法仅从哈希值中恢复输入。 MD5 是 20 世纪 90 年代和 2000 年代初占主导地位的通用哈希函数,后来被用于加密目的的 SHA-2 系列函数取代。
MD5 已被破坏用于加密用途。自 2004 年以来,实际的碰撞攻击(找到产生相同散列的两个输入)已经得到证实,并且现在可以在商用硬件上在数小时内实现选择前缀碰撞。请勿将 MD5 用于密码散列、数字签名、证书指纹或任何需要抗冲突的环境。 SHA-256 和 bcrypt 是合适的替代品。
MD5 对于防碰撞不是安全属性的非加密校验和仍然有用:检测意外文件损坏、在您控制的系统中删除重复上传以及为缓存密钥生成短标识符。该生成器使用 JavaScript MD5 实现完全在您的浏览器中运行;没有输入离开您的设备。
快速文件完整性检查仍然是最可靠的 MD5 用例。当下载站点将 MD5 与文件一起发布时,读者可以验证下载是否完好无损。该检查可以防止传输错误,而不是恶意篡改(老练的攻击者可以生成与任何选定的 MD5 相匹配的文件),但对于随意的完整性验证来说,这是可以的。
MD5 也可用作确定性短标识符。缓存层、重复数据删除系统和 ETag 生成通常使用 MD5 对内容进行哈希处理,因为结果很短、计算速度很快,并且对于非安全目的来说足够好。新设计应该更喜欢 SHA-256 或 xxHash,但使用 MD5 作为标识符的现有系统在这个角色中并不是不安全的。
粘贴文本或上传文件,获取 32 个字符的十六进制哈希值。
MD5 以 512 位(64 字节)块的形式处理输入。每个块通过四轮操作更新 128 位内部状态。每轮应用不同的非线性函数、模加法和按位旋转。最终状态是摘要。
该算法需要填充:输入附加 1 位,然后附加 0 位,然后附加 64 位长度字段,以便总长度是 512 位的倍数。这确保每个输入都具有唯一的长度前缀编码。
输出被解释为小端顺序的 16 个字节,然后打印为 32 个十六进制字符。有些工具打印大写,有些工具打印小写;值是相等的。