Rijndaelアルゴリズムを使用すると、設定ファイル(または設定ファイル内のセクション)を暗号化し、そのファイルをJavaで解読できますか?キー Javaで暗号化し、RijndaelでC#で解読する
これを仮定し、
- IVにおけるパス(自動生成されないアイデア:: GenerateIVは()):仮定は、とすることができます次の質問は次のようになります。
- keySizeは256になりますか?私は128がAESであることを知っていますが、256を使用したいと思います。Javaに256のプロバイダがあるのか、BouncyCastleを使用する必要があるのかわかりません。
- Paddingとは何ですか? 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; }
絶対に - なぜ私は外部プログラムをお勧めしますか? –
彼は、このことを抽象化した例としてbouncycastleを使用しています。私はそれをしたいと思うので、私はずいぶん違うことはしていません...私はプロバイダがクロスプラットフォームで動作することを確認したいだけです。 –
暗号化アルゴリズムはアルゴリズムに過ぎません。だから、それはプラットフォームに依存してはならない。ファイルを暗号化するために1つの言語で取ることができる一連のステップは、他の言語でコードを記述して解読できるようにする必要があります。そうでない場合は、アルゴリズムに問題があります。 –