我有存储在SQL Server中的bankAccountnumber和路由号。
如何以最安全的方式加密这些信息?
我应该使用什么数据类型?
我想用盐使用Hashcode,但我不知道如何解密?
SQL Server表
Salt varbinary(250) not null
bankAccountnumber binary(16) not null
代码
对于代码工作以下的加密,但我不知道如何解密bankaccount数。我不知道我使用的是正确的数据类型。
public void CreateNewAccount(AccountManagementView userAccount)
{
byte[] salt = System.Text.Encoding.UTF8.GetBytes("hereissalt");
byte[] hashedbankaccnumber = CreateSaltedField(salt, userAccount.bankAccountnumber);
BuildInsertQueryForTable("User")
.SetColumnToValue("ID", Guid.NewGuid())
.SetColumnToValue("EmailAddress", userAccount.EmailAddress)
.SetColumnToValue("Salt", salt)
.SetColumnToValue("bankAccountnumber", hashedbankaccnumber )
.ExecuteNonQuery();
}
这是生成加密密钥的函数
private static byte[] CreateSaltedField(byte[] salt, string bankAccountnumber)
{
return new HMACMD5(salt).ComputeHash(System.Text.Encoding.UTF8.GetBytes(bankAccountnumber));
}
有人能帮助我吗?
答案 0 :(得分:0)
我想用盐使用Hashcode,但我不知道如何解密?
你不能像SHAXXX那样使用Hash with Salt。它是单向加密,用于加密密码。
您可能希望看一下非常强大的TripleDESCryptoServiceProvider。
仅供参考: 通常情况下,银行知道需求是什么,需求类型来自上层。请咨询您的主管。