Python中的密码加密?
我刚刚用Python创建了一个新的注册应用程序。所有的用户信息都成功保存到数据库里,但密码却是以我们注册时填写的原样保存的。请问我该如何加密密码,或者使用Python的默认功能来处理密码呢?
请给我一些建议好吗?
5 个回答
1
自己实现这些东西可不行,否则很可能会出错。
在存储密码时,使用一些可以反向解码的方式、对称加密、或者简单的哈希(比如hashlib里的)甚至是随机加盐的哈希,都是现在的大失败。
如果你在用django,最好使用django提供的一些强大的算法(通常是:bcrypt、pbkdf2、sha512_crypt)。
如果不使用django,那就用passlib - 不过要先看看它的文档。
1
你应该对密码进行加密,下面的代码会根据你在settings.py文件中设置的PASSWORD_HASHERS来加密用户输入的原始密码。
from django.contrib.auth.hashers import make_password
pass = make_password(raw_pass) # hashing is done here
user.set_password(pass)