C# 加密sqlite数据库中的登录名和密码-C中的SHA256#
我想在sqlite数据库中存储登录名和密码。此数据库使用SQLCipher库进行加密。但加密数据库的密码是另一个问题。此密码存储在应用程序代码中。用户提供登录名和密码以登录到应用程序。在C#中有SHA256类。如果我使用这个类是否足够?或者更确切地说,我应该使用散列和盐或其他方法C# 加密sqlite数据库中的登录名和密码-C中的SHA256#,c#,encryption,C#,Encryption,我想在sqlite数据库中存储登录名和密码。此数据库使用SQLCipher库进行加密。但加密数据库的密码是另一个问题。此密码存储在应用程序代码中。用户提供登录名和密码以登录到应用程序。在C#中有SHA256类。如果我使用这个类是否足够?或者更确切地说,我应该使用散列和盐或其他方法 谢谢要在数据库中存储用户密码以用于登录事宜,您应该使用带salt的哈希函数 SHA256就是其中之一,但还有更好的。我建议你使用导数函数。您可以使用.NET framework中提供的类实现自己的PBKDF2哈希方法
谢谢要在数据库中存储用户密码以用于登录事宜,您应该使用带salt的哈希函数
SHA256
就是其中之一,但还有更好的。我建议你使用导数函数。您可以使用.NET framework中提供的类实现自己的PBKDF2
哈希方法
下面是一个快速操作方法:
现在只需将盐和散列存储在数据库中。使用和从字节[]
获取字符串,反之亦然
另一种选择是使用。这很有趣。您应该哈希+salt用户密码。
int saltSize = 256; // Number of bytes of the salt
int iterations = 1000; // Number of times we iterate the function
// The more we iterate, the more it is gonna take time.
// The advantage of a great iterations number is to
// make brutforce attack more painful.
int hashSize = 20; // Number of bytes of the hash (the output)
var deriveBytes = new Rfc2898DeriveBytes("mypassword", saltSize, iterations);
byte[] salt = deriveBytes.Salt;
byte[] hash = deriveBytes.GetBytes(hashSize);