Итак, с помощью вас, ребята, я закончил создание моего очень простого шейдера изображений. Этого достаточно, чтобы удержать любого нетехнического человека, не так ли? : PВнедрение XOR в простой метод шифрования изображений
Теперь переход к следующему шагу. Кто-то предложил использовать XOR. Я читал о XOR, и это в основном логическая таблица, которая определяет, что ответ между двумя битами, не так ли?
Только если это правда, утверждение верно.
0 0 = ложь 1 0 = истина 0 1 = истина 1 1 = ложь
Правильно ли это? Итак, как я могу использовать XOR для шифрования изображения?
Вот мой предыдущий способ использования шифрования Цезаря.
private void EncryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\";
dialog.Title = "Please select an image file to encrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);
for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)(ImageBytes[i] + 5);
}
File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}
private void DecryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\";
dialog.Title = "Please select an image file to decrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);
for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)(ImageBytes[i] - 5);
}
File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}
BTW, я просто добавляю числовое значение к каждому байту в массиве byte []. Я не уверен, как XOR впишется в это. Я даже не уверен, что это путь. xD –
@ Papuccino1: почему бы не использовать один из встроенных методов шифрования? Катиться самостоятельно - это не очень хорошая идея. –
Это если вы хотите изучить внутреннюю работу и любопытны. : 3 –