擅长:python、mysql、java
<p>不用存储密码,您可以使用python的本机修饰符存储密码的散列版本,并出于安全目的使密码不可读,如下所示:</p>
<pre><code>class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(255), unique=True)
password_hash = db.Column(db.String(128))
@property
def password(self):
raise AttributeError('password not readable')
@password.setter
def password(self, password):
self.password_hash = bcrypt.hashpw('password', bcrypt.gensalt()))
# or whatever other hashing function you like.
</code></pre>
<p>您应该在实现的bcrypt技术中添加一个verify password函数:</p>
^{pr2}$
<p>然后您可以创建一个用户:</p>
<pre><code>User(email='a@example.com', password='abc')
</code></pre>
<p>您的数据库应该填充一个散列的<code>password_hash</code>,而不是<code>password</code>属性。在</p>