gpt4 book ai didi

c# - Encryption Salt Algo CryptSharp 提供了不同的密码加密.....如何使用它

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:04 25 4
gpt4 key购买 nike

注册时

string crypt = CryptSharp.Crypter.Sha512.GenerateSalt();
crypt = txtspss.Text.Trim();
crypt = CryptSharp.Crypter.Sha512.Crypt(txtspss.Text, crypt);

登录时..

string cpass=dr["strUPass"].ToString();
bool matches = Crypter.CheckPassword(pass,cpass);
if (matches)
{....}

最佳答案

盐应该是独一无二的。通过这样做,试图破解密码的人必须对每个密码进行单独的计算,而不是能够为一百万个密码生成哈希值,然后将它们与整个被盗密码数据库进行检查。

CryptSharp 以模块化加密格式对密码进行编码。这是设计。假设算法为A,salt为B,hash为C,GenerateSalt写入AB,Crypt读取AB生成C,返回ABC。在下面,您会看到,CheckPassword 或多或少等同于:

Crypter.Crypt(密码, 地穴) == 地穴

因为 Crypt 只读取 AB,如果你传递给它 ABC,它和传递给它 AB 是一样的。这就是 Crypt 执行生成和检查密码哈希的双重职责的方式。

在注册时,GenerateSalt 和 Crypt,在登录时,CheckPassword。许多人会告诉你关于单独存储盐等的这个或那个,这是很好的一般建议,但是模块化地穴格式的设计是为了让所有需要的东西都存储在同一个字符串中。一切都为您准备好了。

哦...此外,在您的代码中,您有一个错误。你在中间的那条线对你没有任何好处。以下将正常工作:

string crypt = CryptSharp.Crypter.Sha512.GenerateSalt();
crypt = CryptSharp.Crypter.Sha512.Crypt(txtspss.Text.Trim(), crypt);

关于c# - Encryption Salt Algo CryptSharp 提供了不同的密码加密.....如何使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394670/

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