我目前正试图使用bcrypt从种子中加密/散列我的密码,并将其存储在MYSQL中,但它一直给我相同的密码.我正在使用python.任何帮助都将不胜感激!
使用者py公司
from app.db import Base
from sqlalchemy.orm import validates
from sqlalchemy import Column, Integer, String
salt = bcrypt.gensalt()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String(50), nullable=False)
email = Column(String(50), nullable=False, unique=True)
password = Column(String(200), nullable=False)
@validates('email')
def validate_email(self, key, email):
# make sure email address contains @ character
assert '@' in email
return email
@validates('password')
def validate_password(self, key, password):
assert len(password) > 4
# encrypt password
return bcrypt.hashpw(password.encode('utf-8'), salt)
种子.py公司
from app.models import User
from app.db import Session, Base, engine
# drop and rebuild tables
Base.metadata.drop_all(engine)
Base.metadata.create_all(engine)
db = Session()
# insert users
db.add_all([
User(username='alesmonde0', email='nwestnedge0@cbc.ca', password='password123'),
User(username='jwilloughway1', email='rmebes1@sogou.com', password='password123'),
User(username='iboddam2', email='cstoneman2@last.fm', password='password123'),
User(username='dstanmer3', email='ihellier3@goo.ne.jp', password='password123'),
User(username='djiri4', email='gmidgley4@weather.com', password='password123')
])
db.commit()
db.close()