使用Rijndael算法,可以加密配置文件(或配置文件中的部分内容),然后在Java中解密该文件。以下假设成立:
- 传递IV(不是自动生成的Idea :: GenerateIV();)
- 传递密钥
- 块大小为128(标准)
- 密钥长度是否可以为256?我知道128是AES,但我们想使用256。我也不知道Java是否有256位的提供程序,或者我需要使用BouncyCastle。
- 填充是什么?PKCS7?
- 我假设CipherMode将是CBC
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;
}