2013-10-30 106 views
1

在代码中(下方),我不太了解这部分的目的{&H76, &H61, &H6E, &H20, &H4D, _ &H65, &H64, &H76, &H65, &H64, &H65}。这些字节是什么?我可以改变它吗?我不熟悉加密(这里是Noob),这一行让我感到困惑。有没有一个定义呢?它看起来像一个ASCII码给我。谢谢!这些字节是什么?

Dim x As New Rfc2898DeriveBytes(EncryptionKey, New Byte() { &H76, &H61, &H6E, &H20, &H4D, _ 
      &H65, &H64, &H76, &H65, &H64, &H65}, 1000) 
+1

它以ASCII形式表示“Van Medvede”。不明白意义。 – John

+0

我的意思是,它看起来像&H76是一个角色或东西。我真的不熟悉 –

+0

是什么设置是的,它是ASCII中的大写字母“V”。加密函数引用是[here](http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx),如果这就是你想要的。 – John

回答

1

这是salt。它被用作散列特定位数据的随机密钥(例如,密码)。

通常没有盐,如果你散列一个简单的密码字符串,它可以通过与彩虹表进行比较来取消哈希。但是加入盐后,它会在散列之前将简单的字符串变成更复杂的字符串。

它通常意味着是一个随机的字节数组。所以你的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