0. NikitaXa 53 25.04.16 23:57 Сейчас в теме

Шифрование и расшифровка строковых полей справочников методом Виженера (с улучшениями)

Обработка по шифрованию и расшифровке строковых полей справочников модифицированным методом Виженера - реализация без внешних компонент, без com-объектов, чистый 1С.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Поручик 4330 27.04.16 07:57 Сейчас в теме
Интересно. Где бы это приспособить?
2. NikitaXa 53 27.04.16 08:23 Сейчас в теме
(1) Поручик, например, временное скрытие конфиденциальной информации в базе.
9. spectre1978 50 05.06.16 16:30 Сейчас в теме
(1) Ну наиболее типичное на мой взгляд применение - это если в объектах конфы хранятся имена-пароли (скажем от неких сторонних веб-сервисов, с которыми работает программа) и есть желание это дело немного прикрыть от посторонних глаз.
3. oleg_km 27.04.16 09:54 Сейчас в теме
У меня в базе хранятся зашифрованные пароли от всякий банк-клиентов так, чтобы их не мог прочитать ни администратор, ни программист. Но я использую для всякий шифрований .NET
4. altu71 27.04.16 10:24 Сейчас в теме
А не подскажите, сколько времени занимает шифрование/расшифровка этим методом на значительном объеме данных? Т.е. запись 10 000 элементов справочника без шифрования столько то, а этих же данных, но с шифрованием - столько то. Т.е. хочется узнать накладные расходы времени на шифрование.
5. NikitaXa 53 27.04.16 21:38 Сейчас в теме
(4) altu71, накладные расходы на шифрование будут напрямую зависеть от оборудования. Я делал замеры (5 циклов шифрования/расшифровки) на справочнике объемом около 6.000. Общее время записи элементов справочника плюс/минус равно (точность до секунды) общему времени записи элементов этих же элементов с шифрованием двух полей (номер телефона и электронная почта). Т..е .время шифрования незначительно по сравнению с временем записи элемента справочника в БД. Если скорость шифрования справочника неудовлетворительна из-за длительной записи элементов справочника, то всегда можно распараллелить этот процесс через фоновые задания.
6. bubus 26.05.16 02:30 Сейчас в теме
И какова стойкость такого метода интересно? Брутфорс пальцами конечно не вариант, а если из 1С обработки пробутфорсить, сколько времени займет интересно на строку из 10 символов (зашифрованный пароль)?
7. NikitaXa 53 26.05.16 23:07 Сейчас в теме
(6) bubus, вот здесь есть описание продолжительности перебора пароля в общем случае. Т.е. для 10 символов пароля получается 1162 года. Однако существуют различные методы расшифровки шифра Виженера, которые позволяют ускорить время расшифровки.
8. bubus 27.05.16 08:31 Сейчас в теме
(7) я уже глянул, да есть. И очень эффективный - частотный криптоанализ. https://habrahabr.ru/post/221485/ Жаль там ссылка на программу мертвая. Но, программа та работает с "обычным" Виженером, а у вас я так понял изменения некоторые с ключом, плюс не "алфавитный квадрат" а символьный. Но, было бы очень интересно посмотреть за сколько бы та программа справилась, если бы справилась вообще. Но, в любом случае ваша разработка мне кажется очень и очень полезной. Для мобильных приложений к примеру, где у нас нет возможности юзать .NET Framework для шифрования.
10. spectre1978 50 05.06.16 16:34 Сейчас в теме
(6) bubus, если нужна стойкость от реального взлома - Вижинер вряд ли подойдет. Это один из самых известных и простых методов шифрования.
Т.е. "защита от дурака". Для серьезных применений нужно использовать CryptoAPI и алгоритмы из него.
11. soulsteps 73 21.06.16 16:32 Сейчас в теме
Автор, сделай сортировку в списке выбора объектов. А так обработка супер. Как раз понадобилось шифрануть данные.
12. NikitaXa 53 22.06.16 11:30 Сейчас в теме
(11) soulsteps, приложена новая версия обработки с сортировкой дерева справочников по синониму.
soulsteps; +1 Ответить
13. dobrynin.i.s 93 03.01.17 19:13 Сейчас в теме
Уважаемый, попробовал на ут 11

{ВнешняяОбработка.ШифрованиеСтроковыхПолейСправочников.Форма.Форма.Форма(780)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(16, 30)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ИЛИ Таблица.ТекстоваяСтрока <<?>><> "")

убрал условие на непустую строку - обработка пишет зашифровано все, но результата не видно в справочнике
14. dobrynin.i.s 93 03.01.17 19:37 Сейчас в теме
(13) ф-я ЗашифроватьСтроку выдает пустой результат в любом случае цифры, кириллица. латиница
15. NikitaXa 53 03.01.17 22:40 Сейчас в теме
(14) Действительно, имела место ошибка в шифровании строковых реквизитов неограниченной длины. Исправленная версия обработки уже приложена к публикации. Для исправления ошибки в модуле формы необходимо заменить строку №734 замените с:
"| ИЛИ Таблица." + ИмяПоля + " <> """"";"
на:
"| ИЛИ ПОДСТРОКА(Таблица." + ИмяПоля + ", 1, 255) <> """"";".
dobrynin.i.s; +1 Ответить
17. ogidni 152 01.07.19 10:34 Сейчас в теме
КодЗакодированныгоСимвола = КодСимволаИсходнойСтроки + КодСимволаКлючаШифрования + СлучайнаяСоставляющая;

Я что то не понял у вас в сумме шифра случайное число. Получается текст зашифровать можно, а вот обратно нет. или только путем перебора случайной строки?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 200 000 руб.
Полный день

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Консультант-методолог 1С
Краснодар
зарплата от 110 000 руб.
Полный день