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

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Поручик 4329 27.04.16 07:57 Сейчас в теме
Интересно. Где бы это приспособить?
2. NikitaXa 54 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 54 27.04.16 21:38 Сейчас в теме
(4) altu71, накладные расходы на шифрование будут напрямую зависеть от оборудования. Я делал замеры (5 циклов шифрования/расшифровки) на справочнике объемом около 6.000. Общее время записи элементов справочника плюс/минус равно (точность до секунды) общему времени записи элементов этих же элементов с шифрованием двух полей (номер телефона и электронная почта). Т..е .время шифрования незначительно по сравнению с временем записи элемента справочника в БД. Если скорость шифрования справочника неудовлетворительна из-за длительной записи элементов справочника, то всегда можно распараллелить этот процесс через фоновые задания.
6. bubus 26.05.16 02:30 Сейчас в теме
И какова стойкость такого метода интересно? Брутфорс пальцами конечно не вариант, а если из 1С обработки пробутфорсить, сколько времени займет интересно на строку из 10 символов (зашифрованный пароль)?
7. NikitaXa 54 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 54 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 54 03.01.17 22:40 Сейчас в теме
(14) Действительно, имела место ошибка в шифровании строковых реквизитов неограниченной длины. Исправленная версия обработки уже приложена к публикации. Для исправления ошибки в модуле формы необходимо заменить строку №734 замените с:
"| ИЛИ Таблица." + ИмяПоля + " <> """"";"
на:
"| ИЛИ ПОДСТРОКА(Таблица." + ИмяПоля + ", 1, 255) <> """"";".
dobrynin.i.s; +1 Ответить
17. ogidni 153 01.07.19 10:34 Сейчас в теме
КодЗакодированныгоСимвола = КодСимволаИсходнойСтроки + КодСимволаКлючаШифрования + СлучайнаяСоставляющая;

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

Вакансии

Программист 1С
Белгород
зарплата от 50 000 руб. до 60 000 руб.
Полный день

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

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день