Description
- Yixiaohan/show-me-the-code 第0021题
- 0021:通常,登陆某个网站或者 APP,需要使用用户名和密码。密码是如何加密后存储起来的呢?请使用 Python 对密码加密。
Notes
这个小项目中涉及加入随机salt的哈希算法。
现在对密码的加密一般是通过哈希算法,常见的方式可参看道可叨-用户密码的存储与 Python 示例。较简单的密码可通过彩虹表破解,其实也就是一个很大的枚举集合,列出现成结果再暴力搜索。
下面的代码是在以上引用的基础之上添加了一些内容得到的。几个小知识点如下:
1. getpass模块的getpass()函数可以不echo输入内容。我记得在youtube上看到过如何把输入内容改成*,但是找不到原视频了。getpass()函数默认的提示内容是”Password:”,但是也可以自行设置:
password = getpass.getpass("Please type in your password:")
2. os.urandom(n)可以生成随机的n个byte,经