2014-07-19 13 views
0

我對PBKDF2及其處理步驟知之甚少。要了解更多信息,我開始閱讀並查看代碼。我在Google上看到過這樣的代碼。對於AES-128bit,N的值是16.我的問題,對於隨機使用我能提高N的值多少?它可以是50嗎?或100?有沒有上限?來自Rfc2898DeriveBytes類的最大字節數

 string password = "123456789"; 
     string salt = "987654321"; 
     Rfc2898DeriveBytes keyGenerator = new Rfc2898DeriveBytes(password, Encoding .UTF8 .GetBytes (salt),10000); 
     byte[] key1 = keyGenerator.GetBytes(N); 

回答

1

根據RFC 2898導出密鑰的最大長度爲(2^32 - 1) * hLen其中爲hLen是 在僞隨機函數輸出的字節長度。

Rfc2898DeriveBytes類在你指的是你的代碼示例.NET框架使用,輸出20個字節,因此你的情況N的最大理論值是85899345900.

+0

奇怪HMAC-SHA1僞隨機函數!我使用此代碼獲得AES-256bit的32字節密鑰,並且對加密和解密都很有用!但你說20bytes .......然後怎麼發生了! – Giliweed

+0

我希望可能其餘的字節都是零。 – Giliweed

+0

由於'Rfc2898DeriveBytes'類爲AES-128bit輸出20bytes。有沒有標準的KDF爲AES-256bit輸出32字節? – Giliweed