Halite-是否足够安全,可以从数据库中使用带有盐的Argon2i密码来获取密钥?

时间:2018-09-24 22:00:19

标签: security encryption doctrine passwords

我正在实现一个存储在数据库中的密钥,该密钥用于使用Halite解密数据库中的数据。为了获得该密钥,我考虑过使用Argon2i,对密码进行哈希处理并将其与盐一起存储在数据库中。

我让用户输入一个通用密码(这基本上是他们的帐户首次登录后的第二次登录),然后使用halite

public function login_secure(Request $request)
{
    $form = $this->createForm(LoginSecureType::class);

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $view = $form->getData();

        $options = [
            'memory_cost' => $ram,
            'time_cost' => $time,
            'threads' => $threads
        ];

        //Only one row in the database table
        $encryption = $this->getDoctrine()
            ->getRepository(Encryption::class)
            ->find(1);

        if (password_verify($view->getPassword(), $encryption->getPassword())) {
           $encryption_key = EncryptionKey::deriveFromPassword(
           $view->getPassword(),
           $encryption->getSalt()

           //TODO: Store $encryption_key in session variable
        );
    }
}

这是存储$ encryption_key的安全方法吗?

0 个答案:

没有答案