我试图使用Python的哈希布
为帖子
生成密码。
>>> import hashlib
>>> hashlib.md5("psql123").hexdigest()
2636d1ddc54901f98d011ffe050c0eb7
但是postgresql需要md5
前缀,所以
sudo -u postgres psql
ALTER USER postgres PASSWORD 'md52636d1ddc54901f98d011ffe050c0eb7';
但是,如果我使用psql123
作为密码,身份验证将失败。
如果我使用钝器
,我很好。请参阅 http://pythonhosted.org/passlib/lib/passlib.hash.postgres_md5.html
使用psql123
作为密码执行以下操作是可以的。
ALTER USER postgres PASSWORD 'md556074e7318bd4cee558faab0678a2fad';
我不明白传递
中的警告想说什么。可以将此哈希值用于后记
用户吗?另外,在文档中的哪个位置说用户名
必须是输入的一部分?
我假设这就是为什么< code>postgres不能理解来自< code>hashlib的结果。作为LDAP用户,我可以在shell中生成密码。postgres有内置的命令来做这件事吗?< code>psycopg2有吗?看起来没有。
alter user postgres ENCRYPTED password 'psql123';
对于其他用途,请使用< code>pgcrypto模块。
create table "user" (name text, password_hash text);
insert into "user" (name, password_hash) values
('u1', crypt('psql123', gen_salt('bf')));
select * from "user";
name | password_hash
------+--------------------------------------------------------------
u1 | $2a$06$SeH4u4aRtT2Zr39er4eSiONT/0IBQHYMbQXn2RauPJKCYdNX1.58G
select name, password_hash = crypt('psql123', password_hash)
from "user"
;
name | ?column?
------+----------
u1 | t
将其安装为登录目标数据库的超级用户:
create extension pgcrypto;
Postgres的密码散列与您所做的非常接近,它只需要将用户名包括在内,如下所示:
pghash = "md5" + hashlib.md5(password + username).hexdigest()
AFAIK,postgres文档根本没有真正记录这种散列格式,并且似乎假设管理员很少会直接处理这些散列:(据我所知,没有生成这些散列的内置方法。如果提供给< code>ALTER USER命令的密码不符合postgres哈希格式,它会假定密码没有经过哈希处理,并根据docs for CREATE ROLE的ENCRYPTED关键字在内部进行处理。(IMHO这是一个有缺陷的行为,因为如果散列依赖于用户名,这意味着散列不能在不同的帐户之间复制和粘贴,当帐户被重命名时会中断,并且(按熵值猜测)只有约6位的有效salt)。
passlib 文档顶部的哈希警告可能更清晰。它旨在警告浏览passlib文档的人,1)这个哈希非常不安全,2)他们不应该在自己的应用程序中使用它,3)它只适合于使用postgres用户帐户,因为它是最强(也是唯一)的哈希格式postgres支持它自己的帐户。
(如果您试图使用postgres来散列您自己的应用程序的用户帐户的密码,我强烈支持克洛多瓦尔多的建议,通过pgcrypto扩展来使用bcrypt)。
我正在开发一个开源应用程序,该应用程序将后绿色SQL作为其默认DBMS。现在,当我在我的系统上安装它时,它的配置是为了让PostgreSQL也随它一起安装。 我的问题是访问已安装的PostgreSQL数据库。安装期间创建的数据库名为< code>iviewdb。 我在许多论坛上读到默认超级用户是,但当我尝试通过命令提示符使用此用户名访问数据库时,它会提示我输入我没有的密码。 我想知道Postgre
本文向大家介绍Python实现的生成格雷码功能示例,包括了Python实现的生成格雷码功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现的生成格雷码功能。分享给大家供大家参考,具体如下: 问题 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。 解决方法: 给定一个
我正在制作一个ASP.NET核心应用程序并使用用户机密。用户机密设置正确,当我右键单击项目->管理用户机密时,我可以看到它们。当我点击“debug”时,在Visual Studio中的一切都运行良好。但是当我构建应用程序并启动.dll文件时,它没有正确地检索用户机密,而是从中得到一个空字符串。
<?php $pw='simplewind'; $afpw=sp_password($pw);//加密字符串 echo $afpw;//输出加密后的字符串 ?>
最小生成树 一个有 n 个结点的带权无向图,在满足所有顶点都连接的前提下使得所有的边的权总和最小,即为最小生成树(Minimum Spanning Tree MST)。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。 N个顶点,一定有N-1条边 包含所有顶点 所有顶点都可以直接或间接连接到另外的顶点 普里姆算法 普里姆算法在找最小生成树时,将顶点分为两类,一类是在查找
我正在尝试创建一个公钥以允许我推送到Git,但我的. ssh文件夹尚未创建。 以下是我运行的命令: $ssh-keygen-t rsa-Cemaill@me.com 生成公共/私有rsa密钥对 输入保存密钥的文件(/h/.ssh/id\u rsa): 这就是H:驱动器配置、数据、配置文件、配置文件中的全部内容。V2 我认为有一个问题,因为当我得到提示输入文件,其中保存密钥(/h//. ssh/id