身份认证

(1.) 基于口令

一般将口令存储在数据库中,拿用户键入的口令和存储的口令比较,根据比较结果授予访问权限

(1.1) 明文认证

直接在数据库中存储口令明文

简单,成本低,但是不安全

(1.2) 引入散列

将口令哈希后存储在数据库中,每次登陆时判断用户输入的口令的哈希值和存储的哈希值是否一致

可能被彩虹表破解

(1.3) 加盐

给口令加盐之后哈希,将哈希值和盐一起存储在数据库中,用户登录时,将用户输入的口令加盐哈希,判断是否一致

加盐本质上等于改变了哈希函数,使得彩虹表破解难以实现

(2.) 基于生物特征

  • 指纹鉴别
  • 声音鉴别
  • 手迹鉴别
  • 虹膜扫描
  • 手形及掌纹
  • 面相
  • (DNA)

(3.) 零知识证明

零知识证明 考虑证明者 (P) 和验证者 (V)(P) 在不让 (V) 知晓信息内容的前提下,向 (V) 证明自己知晓信息,满足

  • 完备性 ( extbf{Completeness})(P) 可以证明,那么 (V) 有理由相信,即 (V) 无法欺骗 (P)
  • 正确性 ( extbf{Soundness})(P) 无法证明,那么 (V) 有理由不相信 (P),即 (P) 无法欺骗 (V)
  • 零知识性 ( extbf{Zero-Knowledge}) 证明过程 (P) 不泄露任何信息,即 (V) 无法获得额外信息
原文地址:https://www.cnblogs.com/ChenyangXu/p/14241991.html