【发布时间】:2020-10-27 06:26:55
【问题描述】:
我正在开发一个社交网站,我已经实现了注册和登录等基本功能。我在前端使用 Basic HTML/CSS/JS,在后端使用 Python (Flask) 和 Firebase DB。问题是,我可以访问数据库,并且可以看到所有注册用户的密码。是否有一种安全的方式可以存储密码,以便管理员(我)不会滥用它?
【问题讨论】:
-
medium.com/analytics-vidhya/… :基本上你添加一个
salt(一个简短的随机字符串到密码),在salt + password上运行数千次哈希函数,存储salt和哈希结果.有标准的方法:PBKDF2、Scrypt、Bcrypt、argon2、... -
保护密码很难。考虑改用Firebase authentication。
-
散列函数是单向的 - 它们被设计成在计算上不可行返回(即最好的攻击应该是你尝试暴力破解输入)。重复散列会减慢这种攻击。散列与加密不同(您希望能够撤消操作)。
-
@hiroprotagonist 我推荐 passlib 作为秘密管理的交换所,它有据可查,有优秀的指南,有相当好的 API,并且内置了对在线升级哈希方案的支持(虽然我不认为它有双重哈希支持)
标签: python flask cryptography