RijndaelManaged を使用してファイルの一部を暗号化する C# アプリケーションがあります (大きなファイルであるため)。そこで、ファイルをバイト配列に変換し、その一部のみを暗号化します。
次に、Java を使用してファイルを復号化します。したがって、C# で暗号化されたファイルの一部 (これらのバイトを意味します) のみを復号化する必要があります。
ここで問題が発生します。C#では符号なしのバイトがあり、Java では符号付きのバイトがあるためです。そのため、暗号化と復号化が思い通りに機能しません。
C# では、暗号化されたバイトと通常のバイトを結合し、File.WriteAllBytes
. したがって、ここではsbyteを使用できないか、その方法がわかりません。
byte[] myEncryptedFile = new byte[myFile.Length];
for (long i = 0; i < encryptedBlockBytes.Length; i++)
{
myEncryptedFile[i] = encryptedBlockBytes[i];
}
for (long i = encryptedBlockBytes.Length; i < myFile.Length; i++)
{
myEncryptedFile[i] = myFileBytes[i];
}
File.WriteAllBytes(@"C:\enc_file.big", myEncryptedFile);
(そして、Java で復号化するためのまったく同じコードがあります)
だから私の質問は:
- C# にWriteAllsBytesはありますか?
- または、Java で符号なしバイトを使用できますか?
- または私の問題に対する他の解決策はありますか?