python-3.x - 从 Python 中检索 PostgreSQL 哈希密码
问题描述
我在某处遗漏了一些东西。我有以下 Python3 代码来插入用户和密码
INSERT INTO table_name (emailAddress, password)
VALUES(%s, crypt(%s, gen_salt('bf')))
ON CONFLICT (emailAddress) DO NOTHING
RETURNING memberId;
这似乎工作正常。它在数据库中插入了一个很好的散列密码,但我在这里查看(https://www.postgresql.org/docs/8.3/pgcrypto.html)并使用以下代码来检索它:
SELECT * from table_name
WHERE emailAddress='{email_addy}'
AND password=crypt('{password}', '{password}');
显然,查询不断返回。有人可以指出我如何获得我想要的信息的方向吗?我猜哈希不匹配?
解决方案
您两次为“crypt”提供相同的参数。
相反,您需要为其提供明文密码和哈希列。
AND password=crypt('{password}', password);
推荐阅读
- c# - Newtonsoft.Json C# :: 格式化 JsonConvert.SerializeObject
- javascript - DOM 操作在模板文字中不起作用
- javascript - 如何创建重复的 webpack 块文件,一个有一个没有哈希?
- reactjs - React Router - 嵌套链接重定向到自定义 404 页面
- javascript - 有没有办法单独验证 ANT DESIGN Table 的每一列?
- postgresql - 如何使用 Azure Data Studio 将转义字符串转换为 postgresql 中的 bytea(\ 不是二进制数字)
- performance - 多个值或范围作为单个指令的延迟意味着什么?
- c# - DOTS 统一中的 IntelliSense
- php - php:laravel 中的注册表单问题
- javascript - 如何在 Leaflet 中的 setInterval 之后保持弹出文本打开?