小白都能看懂的目前主流加密MD5验签

1, 首先要知道MD5 是一个什么东西

  1. 简单的说就是就是取模, 比如, 10 % 2, 余零, 2 想得出10, 就很难, 你只能猜.

  2. 现在有一个字符串 abcd, 下面都是假设
    假设 a = 1, b = 2, c = 3, d = 4,
    相加 1 + 2 + 3 + 4 = 10,
    我们的MD5 算法就是相加%2,
    那么这段字符串的MD5 值就是 0

  3. 现在你只知道, abc 和 md5 = 0 你能推算出 我们的d嘛?
    想知道, 得先知道我们的md5规则
    然后再一个个去假设d的值, md5 的值是不是零
    当然真实的MD5算法不是像上面假设的这么简单

  4. 这个d就是我们的私钥, 验签者把 abc 和 md5 给我们, 我们把 d 私钥 加在后面, 在和md5去比较, 很轻松的就能验证参数有没有被修改, 是不是我们系统加密下发的.

  5. 安全问题, abc 和 md5 其中任何一个参数被修改, 验签就是通不过的

2 形象的描述一下

用户A的鸡蛋
在这里插入图片描述
用户b的鸡蛋
在这里插入图片描述

  1. MD5 算法做的就是, 把我们的参数和私钥打包成一个鸡蛋壳
  2. 然后把鸡蛋中的私钥拿走, 把剩余的鸡蛋壳给你
  3. 你下次拿这剩余的鸡蛋来, 我把私钥填进去, 就知道这个鸡蛋是不是我给你的了
  4. 每个用户的id不一样, 所以鸡蛋的分割是不一样的, 但真实的md5加密应该是具有顺序的, 鸡蛋里面还可以放版本, 使用不同的私钥

很有意思的问题

  1. 上面的鸡蛋, 如果我知道了所有其他的参数, 不是就知道了私钥了
  2. 没有错, 这就说明你的私钥被破解了, 但真实的MD5是没有边界的, 你是不知道这个鸡蛋里面的分布, 也不知道这个私钥块有多大, 他们都是字符, 数学关系, 只能不断的排列, 不断的推算私钥, 暴力破解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值