Tag: aes

使用.NET类的OpenSSL加密

我正在寻找创建一个使用与OpenSSL兼容的.NET库的类。 我知道有一个OpenSSL.Net包装器,但我宁愿避免引用第三方\非托管代码。 我不是在寻找关于这是否是正确选择的讨论,但有理由。 目前我有以下内容,我认为应该与OpenSSL兼容 – 它有效地完成了我认为OpenSSL从OpenSSL文档中所做的事情。 但是,即使只使用此类进行加密和解密,我也会收到以下错误: [CryptographicException] Padding is invalid and cannot be removed. 我已经逐步完成了代码并validation了salt \ key \ iv在加密和解密过程中都是一样的。 请参阅下面的示例类和调用加密解密。 欢迎任何想法或指示。 public class Protection { public string OpenSSLEncrypt(string plainText, string passphrase) { // generate salt byte[] key, iv; byte[] salt = new byte[8]; RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); rng.GetNonZeroBytes(salt); DeriveKeyAndIV(passphrase, salt, out key, out […]