2015-03-19 65 views
0

如果對此的回答非常明顯,請原諒我。DotNetZip WinZipAes256使用隨機鹽嗎?

我需要知道DotNetZip(Ionic.Zip.dll)中的AES 256加密是否會生成隨機鹽?

例如EncryptionAlgorithm.WinZipAes256是否使用內部類WinZipAesCrypto。特別是靜態方法WinZipAesCrypto生成??

using (ZipFile zip = new ZipFile()) 
    { 
    zip.AddFile("CustomerData.pdf"); 
    zip.Password= "123456!"; 
    zip.Encryption = EncryptionAlgorithm.WinZipAes256;  
    zip.Save("Customer.zip"); 
    } 

一個向我提出的要求是,隨機鹽生成每次我們AES加密,我需要100%肯定是這種情況?

謝謝

+0

有關其他信息,請參見http://www.winzip.com/aes_info.htm。 – Stefan 2015-03-19 10:35:38

回答

2

https://dotnetzip.codeplex.com/SourceControl/latest#Zip/WinZipAes.cs

public static WinZipAesCrypto Generate(string password, int KeyStrengthInBits) 
{ 
    WinZipAesCrypto c = new WinZipAesCrypto(password, KeyStrengthInBits); 

    int saltSizeInBytes = c._KeyStrengthInBytes/2; 
    c._Salt = new byte[saltSizeInBytes]; 
    Random rnd = new Random(); 
    rnd.NextBytes(c._Salt); 
    return c; 
} 

所以,是的,它的(僞)隨機的,但不是強加密。如果這是一個問題,您可以隨時下載源代碼並重新編寫使用RNGCryptoServiceProvider的方法。

+0

感謝您的回覆,在這裏裸露我是新來的。好的,我看過你發佈的代碼。但我怎麼能100%確定方法EncryptionAlgorithm.WinZipAes256使用這個? – fourbeatcoder 2015-03-19 10:38:45

+0

通過閱讀代碼。這是所有[可用](https://dotnetzip.codeplex.com/)。 – spender 2015-03-19 10:39:49

+0

...或通過WinZipAes文件中的評論保證聲明:DotNetZip庫的大多數用途將不涉及到WinZipAesCrypto類的直接調用。相反,WinZipAesCrypto類在WinZip AES加密或解密條目時被ZipEntry()類實例化和使用。 – spender 2015-03-19 10:41:22