所以我试图在 postgresql 中散列一些密码,而我为 postgresql 找到的唯一散列解决方案是 pgcrytpo 包的一部分(http://www.postgresql.org/docs/8.3/static/pgcrypto。 html)应该在 postgresql-contrib (http://www.postgresql.org/docs/8.3/static/contrib.html)中。
所以我安装了 postgresql-contrib,(sudo apt-get install postgresql-contrib),重新启动了我的服务器(作为重新启动 postgresql 的简单方法)。
但是,我仍然无法访问应该在 postgresql-contrib 中的任何散列函数,例如:
ninjawars=# select crypt('global salt' || 'new password' || 'user created date', gen_salt('sha256'));
ERROR: function gen_salt(unknown) does not exist
ninjawars=# select digest('test', 'sha256') from players limit 1;
ERROR: function digest(unknown, unknown) does not exist
ninjawars=# select hmac('test', 'sha256') from players limit 1;
ERROR: function hmac(unknown, unknown) does not exist
那么如何在 ubuntu 上的 postgresql 中散列密码?
这可能是一个提示,来自您上面列出的网页之一:
安装 postgresql-contrib 后,您需要
CREATE EXTENSION pgcrypto;
针对要使用加密函数的数据库运行更容易只需安装 pdAdmin 并从您正在处理的数据库中右键单击数据库并添加新对象选择扩展然后选择 pgcrypto 作为名称并将定义模式设置为公共和版本 1.0 在我的 MAC OS 10.7 上对我来说是一个魅力.5 使用 Postgres 9.2