Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加密数据库中的密码_C#_Encryption_Passwords - Fatal编程技术网

C# 加密数据库中的密码

C# 加密数据库中的密码,c#,encryption,passwords,C#,Encryption,Passwords,我有这个密码,假设它是: Testabc123 它存储在数据库中,但数据库中的密码字段显示密码Testabc123。当用户打开数据库时,密码字段不再显示Testabc123,而是其他用户无法访问的内容。只有知道密码的用户才知道 有什么帮助吗 多谢各位 非常感谢你的回答 您是否尝试使用盐哈希保存密码?还是加密 查看一下您是否尝试使用盐哈希保存密码?还是加密 查看一下您是否尝试使用盐哈希保存密码?还是加密 查看一下您是否尝试使用盐哈希保存密码?还是加密 查看一下不要在数据库中存储纯文本密码。对密码使

我有这个密码,假设它是:

Testabc123

它存储在数据库中,但数据库中的密码字段显示密码
Testabc123
。当用户打开数据库时,密码字段不再显示
Testabc123
,而是其他用户无法访问的内容。只有知道密码的用户才知道

有什么帮助吗

多谢各位


非常感谢你的回答

您是否尝试使用盐哈希保存密码?还是加密


查看一下

您是否尝试使用盐哈希保存密码?还是加密


查看一下

您是否尝试使用盐哈希保存密码?还是加密


查看一下

您是否尝试使用盐哈希保存密码?还是加密


查看一下

不要在数据库中存储纯文本密码。对密码使用哈希函数,以使数据库中存储的字符串不可读。另一个用户无法使用该字符串执行任何操作,即使他知道该字符串。您仍然必须确保其他用户不能更改密码字段,否则即使这样也无济于事,因为他可以在那里复制自己密码的散列


检查关于在数据库中存储密码的其他问题(或谷歌)。这方面应该有很多信息

不要在数据库中存储纯文本密码。对密码使用哈希函数,以使数据库中存储的字符串不可读。另一个用户无法使用该字符串执行任何操作,即使他知道该字符串。您仍然必须确保其他用户不能更改密码字段,否则即使这样也无济于事,因为他可以在那里复制自己密码的散列


检查关于在数据库中存储密码的其他问题(或谷歌)。这方面应该有很多信息

不要在数据库中存储纯文本密码。对密码使用哈希函数,以使数据库中存储的字符串不可读。另一个用户无法使用该字符串执行任何操作,即使他知道该字符串。您仍然必须确保其他用户不能更改密码字段,否则即使这样也无济于事,因为他可以在那里复制自己密码的散列


检查关于在数据库中存储密码的其他问题(或谷歌)。这方面应该有很多信息

不要在数据库中存储纯文本密码。对密码使用哈希函数,以使数据库中存储的字符串不可读。另一个用户无法使用该字符串执行任何操作,即使他知道该字符串。您仍然必须确保其他用户不能更改密码字段,否则即使这样也无济于事,因为他可以在那里复制自己密码的散列


检查关于在数据库中存储密码的其他问题(或谷歌)。这方面应该有很多信息

不要在数据库中以纯文本形式存储密码。对它们进行加密,或者更好的是对它们进行散列。
我用来散列密码的.NET库是

从不将密码以纯文本形式存储在数据库中。对它们进行加密,或者更好的是对它们进行散列。
我用来散列密码的.NET库是

从不将密码以纯文本形式存储在数据库中。对它们进行加密,或者更好的是对它们进行散列。
我用来散列密码的.NET库是

从不将密码以纯文本形式存储在数据库中。对它们进行加密,或者更好的是对它们进行散列。
我用来散列密码的.NET库与前面提到的其他海报一样,从不以明文或加密的形式在数据库中存储密码。首先对它们进行散列,在登录过程中,对提供的密码进行散列,并将其与数据库中的散列进行比较。下面是一些哈希代码:

//Author: Racil Hilan
/// <summary>Defines the function used in generating the hash.</summary>
public enum HashAlgorithm { MD5, SHA1, SHA256, SHA384, SHA512 }

//Author: Racil Hilan
/// <summary>Hashes a string using the specified algorithm.</summary>
public static string HashString(string StringData, HashAlgorithm Algorithm) {
  System.Security.Cryptography.HashAlgorithm alg;
  switch (Algorithm) {
    case HashAlgorithm.MD5:
      alg = MD5.Create();
      break;
    case HashAlgorithm.SHA1:
      alg = SHA1.Create();
      break;
    case HashAlgorithm.SHA256:
      alg = SHA256.Create();
      break;
    case HashAlgorithm.SHA384:
      alg = SHA384.Create();
      break;
    case HashAlgorithm.SHA512:
    default:
      alg = SHA512.Create();
      break;
  }
  return HashString(StringData, alg);
}

//Author: Racil Hilan
/// <summary>Hashes a string using the provided algorithm.</summary>
private static string HashString(string StringData, System.Security.Cryptography.HashAlgorithm Algorithm) {
  byte[] Hashed = Algorithm.ComputeHash(Encoding.UTF8.GetBytes(StringData));
  return BytesToHex(Hashed);
}

//Author: Racil Hilan
/// <summary>Converts a byte array to a hex string.</summary>
private static string BytesToHex(byte[] bytes) {
  StringBuilder hex = new StringBuilder();
  foreach (byte b in bytes)
    hex.AppendFormat("{0:X2}", b);
  return hex.ToString();
}
//作者:Racil Hilan
///定义用于生成哈希的函数。
公共枚举哈希算法{MD5,SHA1,SHA256,SHA384,SHA512}
//作者:Racil Hilan
///使用指定的算法散列字符串。
公共静态字符串HashString(字符串StringData,HashAlgorithm算法){
System.Security.Cryptography.HashAlg算法;
开关(算法){
case HashAlgorithm.MD5:
alg=MD5.Create();
打破
case HashAlgorithm.SHA1:
alg=SHA1.Create();
打破
case HashAlgorithm.SHA256:
alg=SHA256.Create();
打破
case HashAlgorithm.SHA384:
alg=SHA384.Create();
打破
case HashAlgorithm.SHA512:
违约:
alg=SHA512.Create();
打破
}
返回HashString(StringData,alg);
}
//作者:Racil Hilan
///使用提供的算法散列字符串。
私有静态字符串HashString(字符串StringData,System.Security.Cryptography.HashAlgorithm){
byte[]Hashed=Algorithm.ComputeHash(Encoding.UTF8.GetBytes(StringData));
返回BytesToHex(散列);
}
//作者:Racil Hilan
///将字节数组转换为十六进制字符串。
私有静态字符串BytesToHex(字节[]字节){
StringBuilder十六进制=新的StringBuilder();
foreach(字节中的字节b)
十六进制格式(“{0:X2}”,b);
返回hex.ToString();
}

与前面提到的其他海报一样,不要将密码以明文或加密的形式存储在数据库中。首先对它们进行散列,在登录过程中,对提供的密码进行散列,并将其与数据库中的散列进行比较。下面是一些哈希代码:

//Author: Racil Hilan
/// <summary>Defines the function used in generating the hash.</summary>
public enum HashAlgorithm { MD5, SHA1, SHA256, SHA384, SHA512 }

//Author: Racil Hilan
/// <summary>Hashes a string using the specified algorithm.</summary>
public static string HashString(string StringData, HashAlgorithm Algorithm) {
  System.Security.Cryptography.HashAlgorithm alg;
  switch (Algorithm) {
    case HashAlgorithm.MD5:
      alg = MD5.Create();
      break;
    case HashAlgorithm.SHA1:
      alg = SHA1.Create();
      break;
    case HashAlgorithm.SHA256:
      alg = SHA256.Create();
      break;
    case HashAlgorithm.SHA384:
      alg = SHA384.Create();
      break;
    case HashAlgorithm.SHA512:
    default:
      alg = SHA512.Create();
      break;
  }
  return HashString(StringData, alg);
}

//Author: Racil Hilan
/// <summary>Hashes a string using the provided algorithm.</summary>
private static string HashString(string StringData, System.Security.Cryptography.HashAlgorithm Algorithm) {
  byte[] Hashed = Algorithm.ComputeHash(Encoding.UTF8.GetBytes(StringData));
  return BytesToHex(Hashed);
}

//Author: Racil Hilan
/// <summary>Converts a byte array to a hex string.</summary>
private static string BytesToHex(byte[] bytes) {
  StringBuilder hex = new StringBuilder();
  foreach (byte b in bytes)
    hex.AppendFormat("{0:X2}", b);
  return hex.ToString();
}
//作者:Racil Hilan
///定义用于生成哈希的函数。
公共枚举哈希算法{MD5,SHA1,SHA256,SHA384,SHA512}
//作者:Racil Hilan
///使用指定的算法散列字符串。
公共静态字符串HashString(字符串StringData,HashAlgorithm算法){
System.Security.Cryptography.HashAlg算法;
开关(算法){
case HashAlgorithm.MD5:
alg=MD5.Create();
打破
case HashAlgorithm.SHA1:
alg=SHA1.Create();
打破
案例H