【发布时间】:2019-07-11 11:59:34
【问题描述】:
我想加密 PostgreSQL 中的数据。我使用以下两种方法插入数据,一种使用ORM,另一种不使用ORM
db = sql.create_engine(connection_string)
metadata = sql.schema.MetaData(bind=db, reflect=True)
inputStringtable = sql.Table('person_info', metadata, autoload=True)
######Using ORM########
class RowInputString(object):
pass
orm.Mapper(RowInputString, inputStringtable)
Sess = orm.sessionmaker(bind=db)
session = Sess()
inputTable = RowInputString()
inputTable.person_id = personId
inputTable.person_name = personName
session.add(inputTable)
session.commit()
################################
######not using ORM
def inserting_data(personId, personName):
insertData = inputStringtable.insert().values(person_id=personId, person_name=personName)
conn = db.connect()
conn.execute(ins)
inserting_data(personId, personName)
我遇到了下面的 sn-p 加密并将其发送到数据库:
INSERT INTO users(login, passwd)
VALUES('my_login', crypt('my_password', gen_salt('md5')));
我觉得如何在我的代码中使用这个 sn-p 有点困难?
【问题讨论】:
-
看起来
crypt使用盐对密码进行哈希处理。这将是单向的:取回明文 (my_password) 在计算上是不可行的。据我了解,这不是您的用例... -
另一方面,密码不应该加密存储,而是散列。
标签: python-3.x postgresql orm sqlalchemy