2013-10-30 103 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