Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL中的自动密码哈希_Postgresql_Password Hash_Pgcrypto - Fatal编程技术网

PostgreSQL中的自动密码哈希

PostgreSQL中的自动密码哈希,postgresql,password-hash,pgcrypto,Postgresql,Password Hash,Pgcrypto,在过去的几周里,我一直在使用PostgreSQL,我很喜欢它 我使用crypt()和gen_salt()生成密码哈希,方法是将密码哈希添加到insert查询中,如下所示: crypt(:password, gen_salt('bf', 8)) 同样,对于select,我使用如下内容: crypt(:password, u.password) 我想通过自动化表的密码列上的哈希来简化SQL代码,而不是SQL查询或其他函数 更清楚地说,当我在表中插入一行时,我希望它立即转换哈希/比较 有办法吗?如

在过去的几周里,我一直在使用PostgreSQL,我很喜欢它

我使用crypt()和gen_salt()生成密码哈希,方法是将密码哈希添加到insert查询中,如下所示:

crypt(:password, gen_salt('bf', 8))
同样,对于select,我使用如下内容:

crypt(:password, u.password)
我想通过自动化表的密码列上的哈希来简化SQL代码,而不是SQL查询或其他函数

更清楚地说,当我在表中插入一行时,我希望它立即转换哈希/比较

有办法吗?如果是,这是否明智

我不会对问题的“这是否明智”部分发表评论(不是因为我认为这不明智,而是因为我对你的需求了解不够)

如果希望在插入或更新期间自动计算列值,则需要触发器(请参阅)

如果要在选择期间自动计算列值,则需要一个视图(请参见)


有其他方法可以实现您的要求,但触发器和视图可能是最简单的机制。

所以您有一个表,并在其中存储密码哈希,但您的问题非常“神秘”哈哈。说真的,您所说的自动化(automating)是什么意思?哪些SQL查询或附加函数?您想实现什么?是的,对不起,您可能是对的。因此…我有一个查询,它工作正常。但我想删除密码(:password,gen_salt('bf',8))从查询中,ad以某种方式在表的列本身上实现它,因此每次添加值时,都会立即对其进行散列和/或与散列进行比较。感谢tips man,我明天会查看它并与您联系!