Всем привет, продолжаем тему тайных дел. Заметка краткая, дополняет предыдущую, в которой мы обсуждали шифрование файлов. Вим умеет зашифровать текст и расшифровать его, прозрачно для пользователя. Это позволяет обеспечить, до некоторой степени, безопасность своих документов.
Однако на экране текст не зашифрован...
Есть простенький детский шифр ROT13, состоящий в сдвиге букв английского алфавита на 13 позиций. Поскольку букв всего 26, то направление сдвига роли не играет, а преобразование обратно к самому себе, то есть повторное применение расшифровывает зашифрованное.
Шифр наивный, но скрыть что-то от случайного наблюдателя, глядящего на экран, позволяет.
Еще он используется иногда для сокрытия ответов на задачки, для обхода всяких фильтров, ну все в таком роде, поэтому полезно иметь средство для работы с ним, чтобы не отсчитывать буквы по пальцам.
Впрочем, при известной тренировке читать ROT13 можно почти как обычный текст.
Недостаток: работает только для латиницы. Для русского текста, цифр и знаков препинания и других --- не работает.
Еще хуже, что это работает только для [a-zA-Z]. Буквы с акцентами тоже не преобразуются. Что и логично, впрочем. Если пишете по-итальянски, фински, немецки, шведски и т.п., жертвуйте акцентами ради безопасности))
Впрочем, для английского языка и программирования --- более, чем достаточно.
Вим умеет шифровать этим шифром, разумеется:
g? команда движения
или
выделение g?
Например, g?$ --- зашифровать все до конца строки, а g?0 --- до начала, а g?gg --- до начала текста. Заметьте, как быстро это можно набрать!
Но можно еще быстрее: g?? или g?g? шифрует всю текущую строку.
Регистр сохраняется: "A" переходит в "N" и обратно, а "a" --- в "n" и обратно.
Потренируемся в расшифровке?
- Jung nobhg n ebznagvp qvaare gbavtug?
- zl cnffjbeq vf abg_xabja2h
- sbe(v=0;v<a;v++)