gpt4 book ai didi

c++ - c++ 哈希函数对密码来说是否相当安全?

转载 作者:太空狗 更新时间:2023-10-29 19:39:27 25 4
gpt4 key购买 nike

C++ 中内置的散列函数对于散列密码是否相当安全?例如下面的内容。

#include <iostream>
#import <string>

int main ()
{
std::hash <std::string> hash;

std::string passwordGuess;
unsigned long hashedPassword = 1065148159544519853; // hash of password

std::cout << "Enter your password: ";
std::cin >> passwordGuess;

unsigned long hashedPasswordGuess = hash(passwordGuess);


if (hashedPasswordGuess == hashedPassword) {
std::cout << "Password is correct!" << std::endl;
} else {
std::cout << "Password is wrong!" << std::endl;
}
}

这是否合理安全?

最佳答案

离合理安全还差得很远,因为此散列函数不打算用于加密目的

实际上,即使散列函数旨在用于加密目的(例如现在损坏的 MD5、良好的旧 SHA1 甚至是非常新的 SHA3)也不是用于散列存储的密码;这是因为它们被设计为快速,而为了密码安全,您希望哈希设计为,以便在哈希泄露时限制损失。 p>

如果您打算散列密码,您应该查找 bcrypt 的 C++(或 C,因为它们可能更容易找到)实现或 PBKDF2 ;我知道 Crypto++至少是后者。

关于哈希密码的详 segmentation 析,另见how to securely hash passwords .

关于c++ - c++ 哈希函数对密码来说是否相当安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16877976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com