Ещё с раннего детства любил придумывать игрушечные шифры - чтобы можно было что-то записать, что без ключа прочитать будет, как мне тогда казалось, невозможно. Время от времени обдумывал различные формы шифрования. И вот недавно что-то заиграло там, внутри, и пришло в голову реализовать детские фантазии с использованием изученного инструментария.
Оговорюсь сразу, что никакой литературы заведомо по теме не изучал, подготовка отсутствует, шифр придуман "по наитию" - посидел, подумал. Интересно будет услышать комментарии людей "в теме". Так сказать, получить оценку велосипедности велосипеда =)
Особенности шифра Rionigma можете пока посмотреть сами, без моих подсказок =) Использую UDF, так что при открытии разрешаем макросы. Кратко намекну, что шифр этот слегка сложнее банального "давайте символы А запишем как символы Б". При этом, если у двух человек есть файл как во вложении, они могут обмениваться шифрами и распознавать тексты друг-друга, что немаловажно при использовании некоторых механизмов случайных чисел.
Всем привет и хорошего настроения!
Ещё с раннего детства любил придумывать игрушечные шифры - чтобы можно было что-то записать, что без ключа прочитать будет, как мне тогда казалось, невозможно. Время от времени обдумывал различные формы шифрования. И вот недавно что-то заиграло там, внутри, и пришло в голову реализовать детские фантазии с использованием изученного инструментария.
Оговорюсь сразу, что никакой литературы заведомо по теме не изучал, подготовка отсутствует, шифр придуман "по наитию" - посидел, подумал. Интересно будет услышать комментарии людей "в теме". Так сказать, получить оценку велосипедности велосипеда =)
Особенности шифра Rionigma можете пока посмотреть сами, без моих подсказок =) Использую UDF, так что при открытии разрешаем макросы. Кратко намекну, что шифр этот слегка сложнее банального "давайте символы А запишем как символы Б". При этом, если у двух человек есть файл как во вложении, они могут обмениваться шифрами и распознавать тексты друг-друга, что немаловажно при использовании некоторых механизмов случайных чисел.Rioran
MCH, любопытный подход. Однако мой шифр чуть позаковыристее. Хотя идея защищать документ с помощью пароля - для рядового пользователя весьма привлекательна.
UPD: прочитал код по ссылке внимательнее. Очень много похожего. И на мой код "ключи" легко прилепить, сейчас они "как бы" используются в процессе шифрования.
UPD2: Вижу, Михаил там в комментариях не слабо так отметился =)
MCH, любопытный подход. Однако мой шифр чуть позаковыристее. Хотя идея защищать документ с помощью пароля - для рядового пользователя весьма привлекательна.
UPD: прочитал код по ссылке внимательнее. Очень много похожего. И на мой код "ключи" легко прилепить, сейчас они "как бы" используются в процессе шифрования.
UPD2: Вижу, Михаил там в комментариях не слабо так отметился =)Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Сообщение отредактировал Rioran - Четверг, 22.01.2015, 19:40
Брось, Николай, твоя жизнь только в твоих руках! =) Будь тем, кем ты хочешь быть, делай то, чего хочешь делать! И помни, что никогда не поздно. Одному моему знакомому пятьдесят пять лет - он пишет дипломную работу и в этом году получит первое высшее образование. Либо ты хочешь всё оставить как есть, либо ты хочешь что-то менять. Всё просто! =)
Брось, Николай, твоя жизнь только в твоих руках! =) Будь тем, кем ты хочешь быть, делай то, чего хочешь делать! И помни, что никогда не поздно. Одному моему знакомому пятьдесят пять лет - он пишет дипломную работу и в этом году получит первое высшее образование. Либо ты хочешь всё оставить как есть, либо ты хочешь что-то менять. Всё просто! =)Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Private Sub AlphaBET() Dim t$, i& t = "tб<UЁJnx#я.Уd9екwТл{'+2g:ч%M6Y?ЗzКLжi!ющZ§~Qk`ЖoЦРNдЪВ^7OpRXS ШрDДаCСГHu@ПгjФь>м14G0" & _ "Нцr;Хэп$|eqBcф,lМтхБm&ш€ОFо]ИЯ\ЮA[vйс8/3Щ_иЭъVPыз5h=нbTё(-'y)ув}*ЕЙЫЛЧI№ЬfWАKasE" ReDim ArrA(Len(t)) For i = 1 To Len(t) ArrA(i) = Mid(t, i, 1) Next End Sub
[/vba] Это если перегонять в массив. Не знаю, как по скорости, но мне кажется, что можно использовать вместо массива доступ к символу через mid напрямую из строки. ЗЫ: Где-то в строке у меня ошибка, плюс, что бы не заморачиваться, я заменил " на ' .
Так же перед использованием Rnd, стоит выполнить randomize.
Мне кажется, что так будет красивше: [vba]
Код
Private Sub AlphaBET() Dim t$, i& t = "tб<UЁJnx#я.Уd9екwТл{'+2g:ч%M6Y?ЗzКLжi!ющZ§~Qk`ЖoЦРNдЪВ^7OpRXS ШрDДаCСГHu@ПгjФь>м14G0" & _ "Нцr;Хэп$|eqBcф,lМтхБm&ш€ОFо]ИЯ\ЮA[vйс8/3Щ_иЭъVPыз5h=нbTё(-'y)ув}*ЕЙЫЛЧI№ЬfWАKasE" ReDim ArrA(Len(t)) For i = 1 To Len(t) ArrA(i) = Mid(t, i, 1) Next End Sub
[/vba] Это если перегонять в массив. Не знаю, как по скорости, но мне кажется, что можно использовать вместо массива доступ к символу через mid напрямую из строки. ЗЫ: Где-то в строке у меня ошибка, плюс, что бы не заморачиваться, я заменил " на ' .
Так же перед использованием Rnd, стоит выполнить randomize.SkyPro
skypro1111@gmail.com
Сообщение отредактировал SkyPro - Пятница, 23.01.2015, 00:44
Private Sub AlphaBET() ArrA = Evaluate("transpose(mid(""tá<U¨Jnx#ÿ.Ód9åêwÒë{'+2g:÷%M6Y?ÇzÊLæi!þùZ§~Qk`" & _ "ÆoÖÐNäÚÂ^7OpRXS ØðDÄàCÑÃHu@ÏãjÔü>ì14G0Íör;Õýï$|eqBcô,lÌòõÁm&øˆ" & _ "ÎFî]Èß\ÞA[véñ8/3Ù_èÝúVPûç5h=íbT¸(-""""y)óâ}*ÅÉÛË×I¹ÜfWÀKasE""," & _ "row(1:164),1))") End Sub
[/vba]
все-таки не удержался [vba]
Код
Private Sub AlphaBET() ArrA = Evaluate("transpose(mid(""tá<U¨Jnx#ÿ.Ód9åêwÒë{'+2g:÷%M6Y?ÇzÊLæi!þùZ§~Qk`" & _ "ÆoÖÐNäÚÂ^7OpRXS ØðDÄàCÑÃHu@ÏãjÔü>ì14G0Íör;Õýï$|eqBcô,lÌòõÁm&øˆ" & _ "ÎFî]Èß\ÞA[véñ8/3Ù_èÝúVPûç5h=íbT¸(-""""y)óâ}*ÅÉÛË×I¹ÜfWÀKasE""," & _ "row(1:164),1))") End Sub
krosav4ig, казалось бы, похоже на кусок моего макроса, но в какой кодировке заливаешь?)) А то тут не очень видно, как ты решил тонкости с кавычками =) Я использую русские шрифты. Попробуй копировать, когда на языковой панели горит RU, или где-то на форуме была тема как лечить проблемы с кодировками.
Признаю, выглядит приятнее глазу и менее трудоёмко, чем у меня. Хотя я один фиг пару формул в Экселе протянул и в код вставил.
krosav4ig, казалось бы, похоже на кусок моего макроса, но в какой кодировке заливаешь?)) А то тут не очень видно, как ты решил тонкости с кавычками =) Я использую русские шрифты. Попробуй копировать, когда на языковой панели горит RU, или где-то на форуме была тема как лечить проблемы с кодировками.
Признаю, выглядит приятнее глазу и менее трудоёмко, чем у меня. Хотя я один фиг пару формул в Экселе протянул и в код вставил.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Сообщение отредактировал Rioran - Воскресенье, 25.01.2015, 21:39
Private Sub AlphaBET() ArrA = Evaluate("transpose(mid(""tб<UЁJnx#я.Уd9екwТл{'+2g:ч%M6Y?ЗzКLжi!ющZ§~Qk`" & _ "ЖoЦРNдЪВ^7OpRXS ШрDДаCСГHu@ПгjФь>м14G0Нцr;Хэп$|eqBcф,lМтхБm&ш€" & _ "ОFо]ИЯ\ЮA[vйс8/3Щ_иЭъVPыз5h=нbTё(-""""y)ув}*ЕЙЫЛЧI№ЬfWАKasE""," & _ "row(1:164),1))") End Sub
Private Sub AlphaBET() ArrA = Evaluate("transpose(mid(""tб<UЁJnx#я.Уd9екwТл{'+2g:ч%M6Y?ЗzКLжi!ющZ§~Qk`" & _ "ЖoЦРNдЪВ^7OpRXS ШрDДаCСГHu@ПгjФь>м14G0Нцr;Хэп$|eqBcф,lМтхБm&ш€" & _ "ОFо]ИЯ\ЮA[vйс8/3Щ_иЭъVPыз5h=нbTё(-""""y)ув}*ЕЙЫЛЧI№ЬfWАKasE""," & _ "row(1:164),1))") End Sub