认证登录历史演化

  1. 认证的核心是验证身份真实性,确认操作者是本人,防止冒充、伪造、越权使用。
  2. 常见传统认证方式包括:账号密码、短信验证码、邮箱验证、U盾、人脸识别、指纹识别、动态口令等。
  3. 传统认证大多依赖中心化平台验证,由平台或机构判断身份是否合法。
  4. 加密分为对称加密和非对称加密,是现代认证的底层技术。
  5. 对称加密:加密和解密使用同一个密钥,速度快,但密钥传输不安全。
  6. 非对称加密:使用公钥和私钥一对密钥,公钥可以公开,私钥必须自己保密、不能泄露。
  7. 公钥:公开给所有人,用于加密数据、验证签名
  8. 私钥:自己绝密保管,用于解密数据、数字签名
  9. 公钥和私钥一一对应,公钥加密的内容只有私钥能解开,私钥签名的内容只有公钥能验证成功。
  10. 私钥是身份的核心凭证,谁持有私钥,谁就是身份的拥有者
  11. 公钥不能反推私钥,保证了密码学安全。
  12. 数字签名使用私钥签名 + 公钥验证,实现身份认证、防篡改、不可抵赖。
  13. 签名验证通过,即可证明操作由私钥持有者发起,是本人行为。
  14. 数字签名是网络安全、支付、证书、区块链的基础认证逻辑。
  15. 区块链认证不需要中心化机构,不依赖平台、银行、服务器。
  16. 区块链账户地址由公钥哈希生成,不直接绑定个人信息。
  17. 区块链上的身份认证 = 私钥签名,签名成功即完成身份确认。
  18. 区块链认证特点:去中心化、不可篡改、可追溯、自主掌控身份
  19. 区块链认证与传统认证最大区别:传统靠平台信任,区块链靠密码学和分布式账本信任。
  20. 传统认证:中心机构判断你是谁。
  21. 密码认证:用密码证明你是谁。
  22. 公钥私钥认证:用密钥对证明你是谁。
  23. 区块链认证:用私钥签名证明你是谁,且记录永久存证、不可篡改。
  • 每次请求都要输密码
  • 极麻烦、极不安全
  • 登录一次,后端给你一个会话号
  • 存在 Cookie,浏览器自动带
  • 后端存状态、能踢人、改密码就失效
  • 缺点:跨域难、APP 不友好
  • 无状态、不查库、跨域爽
  • 改密码不能自动失效,要靠黑名单
  • 适合:绝大多数网站、APP、小程序
  • 无密码、无注册
  • 私钥 = 身份,公钥 = 账号
  • 不可伪造、不可篡改
  • 适合:支付、HTTPS、区块链、金融系统

你就记一对钥匙 + 两个功能

  1. 私钥
    • 只有你自己有
    • 可以给数据签名
  2. 公钥
    • 全世界都能看
    • 只能用来验证签名
  • 私钥签名
  • 所有人都能用公钥验证
  • 任何人都无法通过公钥反推私钥

这就是数学上的非对称加密


  • 用户不会保管私钥,丢了号就没了
  • 登录流程复杂
  • 普通系统JWT 已经够用

只有高安全场景才用:

  • 支付签名
  • HTTPS 证书
  • 银行、政务、接口验签
  • 区块链

不用密码,用私钥签名证明“你是你”。

流程:

  1. 后端给一段随机字符串
  2. 钱包用私钥签名
  3. 后端用公钥验证
  4. 验证通过 → 登录成功

全程:

  • 不传密码
  • 不传私钥
  • 后端什么都不存
  • 最安全的登录方式

  1. Session:后端存状态,安全可控,但跨域弱
  2. JWT:前端存票,方便跨域,但不能主动作废
  3. 公私钥:签名验签,极安全,但用户难用
  4. 区块链:公私钥登录,无密码,未来方向

你现在已经把全行业所有认证体系全部打通了:

  • 登录
  • 跨域
  • Cookie
  • JWT
  • 签名
  • 公私钥
  • 区块链认证

你随便去看任何项目的登录逻辑,都能一眼看懂底层在干嘛

你接下来想玩哪块?

我可以直接给你讲:

  • JWT 真实代码怎么写
  • 公私钥签名怎么实现
  • 区块链钱包登录怎么接

  1. 公链/后端 绝对不存你的私钥!

全世界都没有你的私钥,只有你自己有。

  1. 不需要知道私钥,也能验证是不是它签的!

这就是非对称加密最神奇的地方。


我们把:

  • 私钥 = 你的私人印章(只有你有)
  • 公钥 = 印章的“防伪图样”
  • 原文 = 一张白纸
  • 签名 = 印章盖在纸上的印子
  1. 你拿私钥印章,在白纸(原文)上盖一下

→ 出来一个印子(签名)

  1. 你把三样东西给警察(后端/公链):
    • 白纸(原文)
    • 印子(签名)
    • 防伪图样(公钥)

不需要有你的印章

他只做一件事:

**把“印子”和“防伪图样”对比:

纹路对不对得上?**

  • 对得上 → 一定是你这个印章盖的
  • 对不上 → 假的

警察不需要见过你的私钥印章

警察不需要拥有你的印章

警察不需要存你的印章

只靠防伪图样(公钥),就能验证印子(签名)真假


  1. 原文(随机字符串)
  2. 签名(钱包盖的章)
  3. 公钥(防伪图样)

用一套固定的数学算法,去算:

用这个公钥

能不能把这个签名

还原/验证成这个原文

  • 能 → 证明:

这个签名,一定是和公钥配对的那个私钥签的

  • 不能 → 假的、伪造的、改过的

只要是这个私钥签的,

全世界任何人,

拿上公钥,

都能验证成功,

但永远推不出私钥。**

这不是魔法,是数学。


绝对没有!绝对没有!绝对没有!

  • 公链只认签名、公钥、原文
  • 公链不存任何人的私钥
  • 私钥只在你钱包里

  1. 私钥签名,就像盖章。
  2. 公钥验证,就像核对章的纹路。
  3. 不需要章本身,只要纹路对得上,就证明是你盖的。

  • Cookie、Session、JWT
  • 跨域、安全、踢人、改密码
  • 公私钥、签名、验签
  • 区块链钱包登录整套底层

你现在去看任何登录、钱包、公链、验签代码,一眼就能看懂底层在干嘛