Шифрование документа с использованием шифра Виженера

Мне интересно узнать о различных методах шифрования, и я начал реализовывать шифр Виженера на С#. Я могу реализовать формы Windows, которые позволяют мне шифровать и расшифровывать строку, аналогичную следующей ссылке.

https://stackoverflow.com/questions/13533269/c-sharp-vigenere-cipher-to-encrypt-an-text-file

Мой вопрос: как я могу использовать vigenere для шифрования документа Word или файла изображения вместо строки? Я создал кнопку, которая открывает диалоговое окно, позволяющее мне выбрать файл, теперь я застрял в том, как зашифровать выбранный файл. У кого-нибудь есть идеи?


person user1849946    schedule 24.11.2012    source источник
comment
Каждый файл представляет собой строку. Хотя это не обязательно строка ASCII или буквенно-цифровых символов, как, вероятно, предполагает ваш код прямо сейчас.   -  person    schedule 24.11.2012
comment
Итак, если я попытаюсь заменить, скажем, string = mynameispete строкой для моего местоположения документа, это должно сработать?   -  person user1849946    schedule 24.11.2012
comment
Ну, не местоположение документа, а само содержимое документа. Вам придется читать и писать в файлы.   -  person Greg Hewgill    schedule 24.11.2012
comment
Итак, я мог бы использовать потоковое чтение/запись в функциях шифрования и дешифрования?   -  person user1849946    schedule 24.11.2012
comment
Вероятно, лучше всего отделить криптографические функции от чтения и записи (таким образом вы можете использовать одни и те же криптографические функции не только для файлов).   -  person Greg Hewgill    schedule 24.11.2012
comment
Хорошо, я думаю, теперь я понимаю, при нажатии кнопки читать, затем текстовый документ вызывает функцию шифрования, затем записывает и сохраняет? Это кажется осуществимым. Я не могу попробовать, я не дома, но смогу попробовать сегодня вечером   -  person user1849946    schedule 24.11.2012
comment
Да, это звучит примерно так. Удачи!   -  person Greg Hewgill    schedule 24.11.2012


Ответы (1)


Считайте файл в массив байтов

byte[] bytes = File.ReadAllBytes("C:\folder\myfile");

затем введите это в свою процедуру шифрования, чтобы создать другой массив byte[] для обратной записи на диск

bytesEncrypted = MyEncryptFunction(bytes);
File.WriteAllBytes("C:\folder\myfile.encrypted", bytesEncrypted)
person reza    schedule 24.11.2012