Возвратное шифрование данных.
Не секрет, что большинство языков программирования содержат функции безвозвратного шифрования. Для обывателя это звучит приблизительно так: Данные зашифровать можно, но расшифровать их обратно нельзя. Это — недалеко от истины и когда менеджер банка утверждает, будто пароль к вашему счету известен только вам и никому больше, он не лукавит. В PHP функция безвозвратного шифрования называется md5. Достаточно подставить в нее любую переменную: слово или число, на выходе получим последовательность из двадцати символов ничем не связанных с исходной. Можно еще раз зашифровать слово или число и получить точно такую же последовательность, именно так хранятся пароли. Иногда зашифрованную информацию, называют кешем, что с моей точки зрения не совсем корректно. Механизм работы приблизительно таков: Вы вводите пароль на своем устройстве, он шифруется функцией md5 и передается на сервер банка, там сверяется с хранящимися в зашифрованном виде данными и в случае совпадения вам открывается доступ. Кража с самого сервера не даст похитителю ничего, потому что, не имея исходника — кеш бесполезен. Можно вычислить пароль шифруя случайные последовательности. Но делать это придется до тех пор, пока похищенный кеш, не совпадет с результатом вычислений. Сегодня, с этим может справиться разве, что квантовый компьютер, да и его возможности слишком переоценены. Так если шифровать данные не в двадцать, а в сорок последовательностей, работа квантового процессора окажется такой же бесконечной. Сам алгоритм шифрования md5 мне не известен, но, могу предположить, что это банальная пастеризацию данных, как например: стирание точек в IP адресе. Если взять 127.0.0.1 и удалить все точки, то получится число 127001. Обратно узнать IP адрес нельзя, потому что это могли быть адреса 1.2.70.01 или 12.7.00.1 или любой другой. Но вновь получить число 127001 из адреса 127.0.0.1 очень просто. Понятно, что функция md5 сложнее. Она быстро и надежно шифрует, но иногда неплохо расшифровать данные и в противоположную сторону. Стандартные языки программирования этого не позволяют, поэтому я написал функцию, которую и предлагаю вашему вниманию. Если описать принцип, то это: несколько вращающихся барабанов. Ключ шифрования задает скорость и количество барабанов. Сами барабаны - последовательности замен. Собственно это — весь принцип. С помощью функции можно шифровать, хранить и вновь расшифровывать данные. Ключ хранится на стороне сервера и его сохранность входит в зону ответственности администратора, других настроек не предусмотрено. Я зашифровал с помощью, этой функции следующую строчку:
Однажды, в студеную зимнюю пору
И вот что получилось:
qГVП^ГъРnУnx8-Г*V-enЯяvVeenR4ц-
Если вы считаете себя хакером, разбираетесь в шифровании и безопасности данных, либо просто толковый программист, расшифруйте этот фрагмент и пришлите мне.
ШдC!ыИыУ1@дшCб@ыCe@ы!ыCсдCцMZдбMW1I
Обещаю разумное вознаграждение и приглашение к созданию новых более совершенных алгоритмов. Особое приглашение для работников ЦРУ, ФСБ, кибрервойск и киберпреступников. Для вас вознаграждения не будет, но вы сможете испытать свои средства взлома, так сказать в боевых условиях. Более того внизу этой страницы открыть сервис где можно зашифровать любой текст. Ломайте сколько душе угодно, удачи.
|