在 bash 部署时将初始用户插入我的数据库
Inserting an initial user into my database on bash deployment
我正在尝试在部署时在我的 postgresql 数据库中创建一个初始用户。显然我需要为用户生成我想要的密码的 pbkdf2:sha1
密钥。
例如,假设我想添加一个用户名 "admin" 和密码 "admin" 的管理员帐户,我需要先对密码 "admin" 进行哈希处理,然后再将其插入 [=29] =] 我相信。
任何人都可以告诉我如何在 bash 中执行此操作,例如,我尝试了一些类似的方法,但似乎没有用:
ADMIN_PASSWORD=admin
openssl dgst -sha1 -hmac "$ADMIN_PASSWORD"
编辑:这是 postgres 数据库的密码,这就是为什么在插入之前需要对其进行哈希处理的原因。我想在 bash 而不是 python 中实现此散列。
由于这是一次性任务,哈希值永远不会改变 - 它是一个常量,所以请这样编码:
发现您的应用程序将为密码为 "admin" 的 "admin" 用户创建什么散列,并将其硬编码到您的 bash 脚本中。
输入应该通过标准输入。这样做:
ADMIN_PASSWORD=admin
echo -n "${ADMIN_PASSWORD}" | openssl dgst -sha1 -hmac
你会得到输出
d033e22ae348aeb5660fc2140aec35850c4da997
在标准输出上。如果您希望将其保存到一个变量中以供以后引用,请执行
ADMIN_PASSWORD=admin
SHA1SUM=$(echo "${ADMIN_PASSWORD}" | openssl dgst -sha1 -hmac)
后来将散列称为 ${SHA1SUM}
。
注意:${ADMIN_PASSWORD}
和 ${SHA1SUM}
中的花括号是可选的。
为什么不让 PostgreSQL 为您生成散列?函数 crypt()
和 gen_salt()
带有一些示例,请参阅 documentation.
我正在尝试在部署时在我的 postgresql 数据库中创建一个初始用户。显然我需要为用户生成我想要的密码的 pbkdf2:sha1
密钥。
例如,假设我想添加一个用户名 "admin" 和密码 "admin" 的管理员帐户,我需要先对密码 "admin" 进行哈希处理,然后再将其插入 [=29] =] 我相信。
任何人都可以告诉我如何在 bash 中执行此操作,例如,我尝试了一些类似的方法,但似乎没有用:
ADMIN_PASSWORD=admin
openssl dgst -sha1 -hmac "$ADMIN_PASSWORD"
编辑:这是 postgres 数据库的密码,这就是为什么在插入之前需要对其进行哈希处理的原因。我想在 bash 而不是 python 中实现此散列。
由于这是一次性任务,哈希值永远不会改变 - 它是一个常量,所以请这样编码:
发现您的应用程序将为密码为 "admin" 的 "admin" 用户创建什么散列,并将其硬编码到您的 bash 脚本中。
输入应该通过标准输入。这样做:
ADMIN_PASSWORD=admin
echo -n "${ADMIN_PASSWORD}" | openssl dgst -sha1 -hmac
你会得到输出
d033e22ae348aeb5660fc2140aec35850c4da997
在标准输出上。如果您希望将其保存到一个变量中以供以后引用,请执行
ADMIN_PASSWORD=admin
SHA1SUM=$(echo "${ADMIN_PASSWORD}" | openssl dgst -sha1 -hmac)
后来将散列称为 ${SHA1SUM}
。
注意:${ADMIN_PASSWORD}
和 ${SHA1SUM}
中的花括号是可选的。
为什么不让 PostgreSQL 为您生成散列?函数 crypt()
和 gen_salt()
带有一些示例,请参阅 documentation.