totools.siteMD5在线加密(HASH)工具(totools 最好用的在线工具集合)

16位大写:

16位小写:

32位大写:

32位小写:


什么是MD5

MD5算法是哈希算法的一种,在特定应用场景下也叫MD5加密,严格意义上讲MD5算法是一种哈希算法,哈希算法与加密算法一个明显的区分点,处理后的数据是否可以被还原成原始文本。
MD5 32位是MD5标准输出128bit,16字节,转成16进制文本表现,就成了32位,比如MD5("010tools")=fa1504ad19c96e376f935ca10443e559,MD5数据长度是32位,但实际存储只需16个字节,128bit就可以保存。 MD5 16位实际上是从 32 位字符串中取中间的第 9 位到第 24 位的部分。

什么是哈希(HASH)算法

散列函数(英语:Hash function)又称散列算法哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值hash valueshash codeshash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。

哈希算法通常有以下几个特点:
  1. 正像快速:原始数据可以快速计算出哈希值
  2. 逆向困难:通过哈希值基本不可能推导出原始数据
  3. 输入敏感:原始数据只要有一点变动,得到的哈希值差别很大
  4. 冲突避免:很难找到不同的原始数据得到相同的哈希值
哈希算法使用场景

  1. 数据校验: 哈希算法主要用来保障数据真实性(即完整性),即发信人将原始消息和哈希值一起发送,收信人通过相同的哈希函数来校验原始数据是否真实。
  2. 安全加密: 日常用户密码加密通常使用的都是 md5sha等哈希函数,因为不可逆,而且微小的区别加密之后的结果差距很大,所以安全性更好。,即发信人将原始消息和哈希值一起发送,收信人通过相同的哈希函数来校验原始数据是否真实。
  3. 唯一标识: 比如 URL 字段或者图片字段要求不能重复,这个时候就可以通过对相应字段值做 md5 处理,将数据统一为 32 位长度从数据库索引构建和查询角度效果更好,此外,还可以对文件之类的二进制数据做 md5 处理,作为唯一标识,这样判定重复文件的时候更快捷。
  4. 负载均衡: 对于同一个客户端上的请求,尤其是已登录用户的请求,需要将其会话请求都路由到同一台机器,以保证数据的一致性,这可以借助哈希算法来实现,通过用户 ID 尾号对总机器数取模(取多少位可以根据机器数定),将结果值作为机器编号。
  5. 分布式缓存: 分布式缓存和其他机器或数据库的分布式不一样,因为每台机器存放的缓存数据不一致,每当缓存机器扩容时,需要对缓存存放机器进行重新索引(或者部分重新索引),这里应用到的也是哈希算法的思想。