当前位置: 首页 > 知识库问答 >
问题:

Postgres:MD5密码/普通密码

司马辉
2023-03-14

我试图了解角色密码应该如何在Postgres中运行。

https://www.postgresql.org/docs/current/static/sql-createrole.html说加密/未加密

如果提供的密码字符串已经是MD5加密的格式,那么它将按原样加密存储,

所以我的未加密密码是:MyPassword。

“MyPassword”的 MD5 哈希值为 48503dfd58720bd5ff35c102065a52d7

如果我这样做了

-- See https://www.postgresql.org/docs/9.6/static/sql-alterrole.html
ALTER ROLE "MeOhMy"
LOGIN
PASSWORD '48503dfd58720bd5ff35c102065a52d7'
;

然后尝试使用“我的密码”时

  sudo -u postgres psql meohmy -h 127.0.0.1 -d meohmy_development

当然,我首先被提示输入我的sudo密码,然后我被Postgres提示“我的密码”

如果我输入密码,我会得到

FATAL:  password authentication failed for user "ralph@dos32.com"

如果我输入48503dfd58720bd5ff35c102065a52d7,那么我可以登录。

我不明白什么?

共有3个答案

黄宏旷
2023-03-14

在GCP云SQL上使用Postgres11。Gitlab版本gitlab-ee 13.3.4综合安装

# gitlab-ctl pg-password-md5 gitlab_user
Enter password:
Confirm password:

# echo -n <password for gitlab_user>gitlab_user | md5sum

是等价的。

注意:我的db用户是<code>gitlab_user</code>的

林弘壮
2023-03-14

Postgresql哈希密码具有< code>md5前缀:

md548503dfd58720bd5ff35c102065a52d7
夏朗
2023-03-14

要为PostgreSQL创建md5密码,公式为:

"md5" + md5(password + username)

这里有3种方法可以创建一个,其中用户名为“admin”,密码为“password123”...

Linux:

# echo -n "md5"; echo -n "password123admin" | md5sum | awk '{print $1}'
md53f84a3c26198d9b94054ca7a3839366d

注意:-n 对于避免在哈希中包含换行符至关重要!

MacOS:

➜ echo -n "md5"; md5 -qs "password123admin"                                                                                                                                                                                   
md53f84a3c26198d9b94054ca7a3839366d

Python 2:

>>> import hashlib
>>> print("md5" + hashlib.md5("password123" + "admin").hexdigest())
md53f84a3c26198d9b94054ca7a3839366d

Python 3:

如上所述,但使用二进制字符串

print("md5" + hashlib.md5(b"password123" + b"admin").hexdigest())
 类似资料:
  • 主要内容:使用SET语句修改普通用户的密码,使用UPDATE语句修改普通用户的密码,使用 GRANT 语句修改普通用户密码在 MySQL 中,root 用户拥有很高的权限,不仅可以修改自己的密码,还可以修改其他用户的密码。本节主要介绍 root 用户修改普通用户密码的几种方法。 使用SET语句修改普通用户的密码 在 MySQL 中,只有 root 用户可以通过更新 MySQL 数据库来更改密码。使用 root 用户登录到 MySQL 服务器后,可以使用 SET 语句来修改普通用户密码。语法格式如

  • 在“摘要认证的密码加密”一节,我们讲到了如何在摘要认证中使用密码加密。但同时也提到了一些限制,比如,该加密方式只能适用于摘要认证,而且摘要认证,只能采用该种方式进行密码加密。那幺,我们如何在其他认证类型(如基本认证、Form表单认证)中进行用户信息的加密呢?本节为你揭开谜底。 在 basic-authentication项目的基础上,我们构建了一个password-encoder项目。 build

  • 问题内容: 我已经以加密格式将用户密码存储在数据库中。但是,现在,当用户想要登录并尝试输入其原始密码时,该代码始终会将输入的(原始)密码与数据库中存储的加密版本进行比较,从而导致登录失败。 请告诉我如何比较输入的(原始)密码和存储在数据库中的加密密码。 问题答案: 几乎可以肯定,您应该对密码进行 哈希处理 ,而不是使用可逆加密。您可能还需要 用盐 来做…在这种情况下,正确的步骤是: 查找最初对密码

  • 这样,从加密消息中扫描进来的第一个字母将对应于换位槽中的第三个槽,这将是它被打印出来的地方。然而,我不知道如何将我的想法转化为代码。 电流换位加密密码: 非常基本的换位解密程序

  • 在FTPS中,密码在尝试通过internet连接服务器时被加密。这就是我所理解的,如果我的理解有任何遗漏,请更正。我的问题是,当我厌倦了模拟它(FTPs和FTP)时,我只是得到一条消息,说SSL已经建立(以及基于隐式和显式调用的端口更改)。 是否有任何其他方式来确认密码是真正加密的,或者我们可以看到密码时,它的普通FTP。下面是我在服务器端看到的日志 启用FTP时的服务器日志- 状态:TLS/SS

  • cmf_password($pw, $authCode = '') 功能 CMF密码加密方法 参数 $pw: string 要加密的原始密码 $authCode: string 加密字符串 返回 string 加密后的密码 例子 echo cmf_password('666666');