在代码(下面)中,我并不完全理解这部分{&H76, &H61, &H6E, &H20, &H4D, _
&H65, &H64, &H76, &H65, &H64, &H65}
的目的。这些字节是什么?我可以改变它吗?我不熟悉加密(Noob here),这条线让我感到困惑。这有定义吗?它对我来说看起来像一个ASCII代码。谢谢!
Dim x As New Rfc2898DeriveBytes(EncryptionKey, New Byte() { &H76, &H61, &H6E, &H20, &H4D, _
&H65, &H64, &H76, &H65, &H64, &H65}, 1000)
答案 0 :(得分:1)
这是salt。它被用作随机密钥来散列特定的数据位(例如,密码)。
通常没有salt,如果你对一个简单的密码字符串进行散列,可以通过将它与rainbow table进行比较来取消它。但是添加salt后,它会在散列之前将一个简单的字符串转换为更复杂的字符串。
它通常意味着是一个随机的字节数组。所以你的盐是十六进制的0x76,0x61,0x6e,0x20,0x4d,0x65,0x64,0x76,0x65,0x64,0x65。
您可以使用以下代码段随机化salt数组。
Dim salt1(8) As Byte
Using rngCsp As New RNGCryptoServiceProvider()
rngCsp.GetBytes(salt1)
End Using