今天看了Django开发者的一篇文章,关于web安全的子项目, 其中提到了一个用于检测用户密码是否安全的API.
不同于普通的密码强度检测,它的检测原理基于最近这些年大型的互联网公司数据库泄漏事件,比如CSDN,天涯,HiAPK安卓网,网易等.
对普通用户,提供两个主要的网页查询功能:
- 你邮件账户的密码是否已泄漏[1]
- 你正在使用的密码是否存在于泄漏数据库及被其他用户泄漏的次数[2]
通过API用Python检测的例子
import hashlib
password = 'swordfish'
digest = hashlib.sha1(password.encode('utf-8')).hexdigest().upper()
print(digest)
# 4F57181DCAADE980555F2CE6755CA425F00658BE
然后访问 https://api.pwnedpasswords.com/range/4F571 (URL最后的参数是以上哈希摘要的前5位)
在响应内容中搜索以上哈希摘要的剩余字符 81DCAADE980555F2CE6755CA425F00658BE
如果检索到,则冒号:后面的数字就是被泄漏的次数, 如果成百上千了,一定要修改你的密码.
密码基本原则
- 密码分级: 根据是否涉及支付和隐私,最起码分成强密码和弱密码两类,强密码定期更新(每年). 如果是一次性注册网站, 使用固定的弱密码.
- 不要使用其他人也常用的弱密码或容易猜到的内容.
- 强密码定义: 8位及以上,包含大小写字母,数字和符号
注: 其实很早之前使用过2次这个网站,记录下让更多人知道.