Опыта с PS у меня мягко говоря не много. Мне нужно написать функцию XOR-шифрования, которая на вход принимала бы 2 строки (data + key) и возвращала зашифрованную строку. Находил пару вариантов, только привести к жизни их у меня не получилось.
xor? Но почему не AES например? напрямую кодировать простой текст нельзя. Во-первых, число, представляющее пробел, будет по-прежнему разделять слова и в шифротекте. Выделив это часто встречающееся одно и то же число, пользователь догадается, что это закодированный пробел. Во-вторых, короткие часто встречающиеся предлоги и союзы также помогут взломщику в определении ключа. Поэтому самым эффективным способом является использование длинного ключа, покрывающего несколько букв, а лучше равного по длине самому сообщению. Так, если мы кодируем достаточно длинное сообщение (не менее 5-10 предложений) с помощью случайного ключа такой же длины, то такое сообщение очень сложно расшифровать. Еще более высоких результатов по надежности можно достичь, если перед шифрованием произвести, например, сжатие текста каким-либо архиватором. Плюс к тому же, если сообщение имеет малую длину, можно добавить в начало и конец сообщения случайные последовательности символов
XOR намного легче AES'a, да и дешифровка займет уйму времени, которого не будет) Но впрочем да, раз реализации XOR'a на PS нет, пусть будет AES.
Шифр Вернама хотите реализовать? ) Похвально. Потому что это как тёплое и мягкое. Xor это логическая функция, а AES это сложный алгоритм шифрования. XOR легче AESа? Ребята. Да это полный ад!!! В AES_е тоже используется функция XOR многократно, при чём тут это?! Она в жесткой логике процессоров используется и к шифрованию не имеет ни малейшего отношения - это алгебра-логика! Если говорить о коде Вернама - он значительно проще чем AES как алгоритм. Но в отличии от AES код Вернама принципиально невозможно взломать, если соблюдены определенные условия (см. википедию). А вот в реализации безопасной передачи ключей в кодах Вернама есть проблемы практически нерешаемые. Потому и не получил распространения в энторнетах (да и вообще). Фактически, какой смысл шифровать сообщение кодом Вернама если у вас есть возможность безопасно передать ключ, размером с само сообщение. С таким же успехом можно тогда и не зашифрованное сообщение передать. Вот такая логика. Но есть одна фича. Если допустим нужно в ответственный момент передать важное сообщение. Например что началась ядерная война ))) А AES_у и программам нет доверия... Вот и едете в штаб или куда там, генерируете истинно случайный код спец оборудованием, везёте его копию к себе (с охраной из 3 танков) ...куда там вам надо. На станцию дальнего обнаружения например. И блин охраняете этот код всё время так, будто само секретное сообщение (а это уже гемор!). Потом, когда потребуется - пишете письмо, переводите его в двоично-десятичный код или ASCII/КОИ7 или во что вы там хотите, абы свелось к двоичному (и пофиг там пробелы и частотные распределения - это в Вернаме не важно, это вам блин не Энигма где надо было мусор вбивать), ксорите с случайным кодом. Шлёте это в штаб. Случайный код сжигаете. Пепел съедаете. И запиваете водой. Или водкой. Если вы заранее привезли 10 таких кодов, то у вас ещё 9 возможностей слать сообщения. Потом всё. ГОСТы или AES. Ну или в открытую уже. И матом
А не проще-ли писать на нормальном языке? Не понимаю людей которые на баше и бате пытаются писать сложную логику.