2017-07-03 91 views
0

我对加密知之甚少,所以请原谅我的知识之湖。我已经使用codeigniter默认库进行加密。在此库中声明:匹配postgresql中的codeigniter默认加密密码?

默认情况下,加密库将使用CBC模式下的AES-128密码,使用您配置的encryption_key和SHA512 HMAC验证。

在配置文件中,我为此加密设置了一个密钥。直到现在我已经成功注册了一位新用户。但现在的登录我必须匹配密码。我想知道如何使用postgresql来实现此目的?我看过md5文章,但没有看到AES加密。

此外,通过检查用户名和加密密码或者获取密码,解密并将其与插入的密码进行匹配,正确的方法是什么?

P.S:对于负面投票不要忘记留下评论:) 干杯!

+2

不要尝试这样做。散列和加密是不同的事情。使用'password_hash()'和'password_verify()'。 – Narf

+0

@Narf所以你建议。你可以详细说明 –

+2

我从字面上告诉你需要使用的2个函数......一个用于哈希密码,另一个用于验证哈希值。没有什么需要说明的。 – Narf

回答

1

如果你仔细阅读CodeIgniter's Encryption Library的文档,你会发现,它明确指出它不应该被用于密码存储:

不要使用这个或任何其他加密库供用户密码存储!密码必须进行散列处理,您应该通过PHP自己的密码散列扩展来实现。

PHP's own Password Hashing extension包含两个功能土著人基金在他的评论中提到:password_hash() & password_verify()

欲了解更多信息,你可以从这里检查的例子:https://secure.php.net/manual/en/function.password-verify.php

+0

是的,我已阅读它。我认为在php方面使用md5会更好。加密是好的,但这样我必须处理更多的密码匹配。 –