我有一个 C# 应用程序,它使用 RijndaelManaged 加密我的部分文件(因为它们是大文件)。所以我将我的文件转换为字节数组并只加密其中的一部分。
然后我想使用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 中使用无符号字节吗?
- 或者我的问题的任何其他解决方案?