0
我正在使用.NET加密庫來加密/解密某些文本。我想在加密過程中爲用戶生成Initialization Vector(IV)和Salt,以便他們需要提供的是一個Pass-Phrase。一旦文本被加密,我將向用戶展示Salt值和初始化矢量,以便他們可以將它們傳遞給消息的接收者。在.NET中生成初始化向量(IV)和鹽值
如何使用.NET在實際加密步驟之外生成鹽和初始化向量(IV)?目前我創建的加密/解密方法接受salt和初始化向量作爲參數,如字符串。
我試過使用下面的代碼生成一個初始化向量,但返回值的大小總是比AES中初始化向量所需的16個字節大。
Dim rng As New RNGCryptoServiceProvider()
Dim buff As Byte() = New Byte(15) {}
rng.GetBytes(buff)
Return Convert.ToBase64String(buff)
這是否意味着表示IV的字符串如果長度超過16個字節會被截斷?也就是說,只使用IV的前16個字節? – webworm 2011-03-28 21:03:47
@webworm - 如果您使用CreateEncryptor方法(http://msdn.microsoft.com/en-us/library/z565ef9x.aspx),則IV的大小是固定的一個字節數組。這是要求。 – 2011-03-28 21:47:20