使用 Rijndael 算法是否可以加密配置文件(或配置文件中的部分),然后在 Java 中解密该文件?可以做出如下假设:
- 传入 IV(不是自动生成的想法 :: GenerateIV(); )
- 传入密钥
- BlockSize 为 128(标准)
假设可以做到这一点,我的下一个问题是:
- keySize 可以是 256 吗?我知道 128 是 AES,但我们想使用 256。我也不知道 Java 是否有 256 的提供程序,或者我是否需要使用 BouncyCastle
- 什么是填充?PKCS7?
- 我假设 CiperMode 将是 CBC
在 c# 中有这样的东西吗?但是,不知道它是否可以用 Java 解密......也许甚至我的 c# 是错误的?
public static void initCrypt()
{
byte[] keyBytes = System.Text.UTF8Encoding.UTF8.GetBytes("abcdefghijklmnop");
rijndaelCipher = new RijndaelManaged();
PasswordDeriveBytes pdb = new PasswordDeriveBytes(keyBytes, new SHA1CryptoServiceProvider().ComputeHash(keyBytes));
byte[] key = pdb.GetBytes(32);
byte[] iv = pdb.GetBytes(16);
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.PKCS7; //PaddingMode.PKCS7 or None or Zeros
rijndaelCipher.KeySize = 256; //192, 256
rijndaelCipher.BlockSize = 128;
rijndaelCipher.Key = keyBytes;
rijndaelCipher.IV = iv;
}