Тип не определен хеширование данных
Этичный хакинг и тестирование на проникновение, информационная безопасность
Что такое хеши и как они используются
Хеш-сумма (хеш, хеш-код) — результат обработки неких данных хеш-функцией (хеширования).
Это свойство хеш-функций позволяет применять их в следующих случаях:
Одним из применений хешов является хранение паролей. Идея в следующем: когда вы придумываете пароль (для веб-сайта или операционной системы) сохраняется не сам пароль, а его хеш (результат обработки пароля хеш-функцией). Этим достигается то, что если система хранения паролей будет скомпрометирована (будет взломан веб-сайт и злоумышленник получит доступ к базе данных паролей), то он не сможет узнать пароли пользователей, поскольку они сохранены в виде хешей. Т.е. даже взломав базу данных паролей он не сможет зайти на сайт под учётными данными пользователей. Когда нужно проверить пароль пользователя, то для введённого значения также рассчитывается хеш и система сравнивает два хеша, а не сами пароли.
По этой причине пентестер может столкнуться с необходимостью работы с хешами. Одной из типичных задач является взлом хеша для получения пароля (ещё говорят «пароля в виде простого текста» - поскольку пароль в виде хеша у нас и так уже есть). Фактически, взлом заключается в подборе такой строки (пароля), которая будет при хешировании давать одинаковое значение со взламываемым хешем.
Для взлома хешей используется, в частности, Hashcat. Независимо от выбранного инструмента, необходимо знать, хеш какого типа перед нами.
Как определить тип хеша
Существует большое количество хешей. Некоторые из них являются универсальными и применяются различными приложениями, например, MD5, SHA1, CRC8 и другие. Некоторые хеши применяются только в определённых приложениях (MySQL, vBulletin) и протоколами.
Кроме популярных хешей, разработчики могут использовать различные сочетания универсальных хешей (например, посчитать хеш с помощью MD5, а затем для полученной строки получить хеш SHA1), либо итерированные (с повторением) хеши (например, для пароля рассчитывается MD5 хеш, затем для полученной строки вновь рассчитывается MD5 хеш, затем для полученной строки вновь считается MD5 – и так тысячу раз).
Применительно к взлому, иногда хешем называют сформированную определённым образом строку или файл, которые не применяются целевым приложением, но которые были рассчитаны исходя из исходных данных так, что позволяют взломать пароль целевого файла или протокола.
Пример такой строки для WinZip: $zip2$*0*3*0*b5d2b7bf57ad5e86a55c400509c672bd*d218*0**ca3d736d03a34165cfa9*$/zip2$
Пример строки для взлома пароля файла PDF 1.7 Level 8 (Acrobat 10 - 11): $pdf$5*6*256*-4*1*16*381692e488413f5502fa7314a78c25db*48*e5bf81a2a23c88f3dccb44bc7da68bb5606b653b733bcf9adaa5eb2c8ccf53abba66539044eb1957eda68469b1d0b9b5*48*b222df06deb308bf919d13447e688775fdcab972faed2c866dc023a126cb4cd4bbffab3683ecde243cf8d88967184680
Обычно пентестеру известен источник хеша и он знает его тип. Но бывают исключения. В этой ситуации необходимо «угадать» какой хеш перед нами.
Это можно сделать сравнивая исходный хеш с образцами. Либо исходя из количества символов и используемого набора символов.
Также можно использовать инструменты, которые значительно ускоряют этот процесс. Программами для определения типа хеша являются hashID и HashTag.
hashID
Эта программа по умолчанию уже установлена в Kali Linux. Она идентифицирует различные типы хешей, используемых для шифрования данных, в первую очередь, паролей.
hashID – это инструмент, написанный на Python 3, который поддерживает идентификацию более 220 уникальных типов хешей используя регулярные выражения.
Использование программы очень простое:
Пара важных замечаний:
- хеш всегда лучше указывать в одинарных кавычках (а не без кавычек и не в двойных)
- имеется опция -m, при использовании которой выводится информация о режиме Hashcat
Хеш режимы Hashcat – это условное обозначение типа хеша, которое необходимо указать с опцией -m, --hash-type.
К примеру, мне необходимо идентифицировать хеш $S$C33783772bRXEx1aCsvY.dqgaaSu76XmVlKrW9Qu8IQlvxHlmzLf:
Как можно увидеть по скриншоту, это Drupal > v7.x в Hashcat для взлома данного хеша необходимо указать режим 7900.
Идентифицируем хеш $1$VnG/6ABB$t6w9bQFxvI9tf0sFJf2TR.:
Получаем сразу несколько вариантов:
MD5cryp – это алгоритм, который вызывает тысячу раз стандартный MD5, для усложнения процесса.
Для справки: MD5 использовался для хеширования паролей. В системе UNIX каждый пользователь имеет свой пароль и его знает только пользователь. Для защиты паролей используется хеширование. Предполагалось, что получить настоящий пароль можно только полным перебором. При появлении UNIX единственным способом хеширования был DES (Data Encryption Standard), но им могли пользоваться только жители США, потому что исходные коды DES нельзя было вывозить из страны. Во FreeBSD решили эту проблему. Пользователи США могли использовать библиотеку DES, а остальные пользователи имеют метод, разрешённый для экспорта. Поэтому в FreeBSD стали использовать MD5 по умолчанию. Некоторые Linux-системы также используют MD5 для хранения паролей.
Ещё один хеш $6$q8C1F6tv$zTP/eEVixqyQBEfsSbTidUJfnaE2ojNIpTwTHava/UhFORv3V4ehyTOGdQEoFo1dEVG6UcXwhG.UHvyQyERz01:
Программа говорит, что это SHA-512 Crypt – т.е. SHA512 (Unix).
HashTag
HashTag – это инструмент на python, который разбирает и идентифицирует различные хеши паролей на основе их типа. HashTag поддерживает определение более 250 типов хешей и сопоставляет их с более чем 110 режимами hashcat. HashTag способен идентифицировать единичный хеш, разобрать единичный файл и определить хеши внутри него или обойти директорию и все поддиректории в поисках потенциальных файлов хешей и идентифицировать все найденные хеши.
Т.е. это аналогичная предыдущей программа.
По умолчанию в Kali Linux она отсутствует, поэтому требуется её скачать:
Идентифицируем те же самые хеши:
Как видим, результаты аналогичны.
Примеры хешей
Большое количество классических хешей, а также хешей, специально составленных для взлома пароля и хеш-файлов вы найдёте здесь.
На той странице вы можете:
- попытаться идентифицировать свой хеш по образцам
- найти ошибку в составленном хеше для взлома пароля, сравнив его с правильным форматом
- проверить работу программ по идентификации хеша
Программы hashID и HashTag не всегда правильно идентифицируют хеш (по крайней мере, в явных ошибках замечена hashID).
К примеру, меня интересует хеш c73d08de890479518ed60cf670d17faa26a4a71f995c1dcc978165399401a6c4:53743528:
Это явно ошибочный результат, поскольку соль после двоеточия будто бы была отпрошена при идентификации хеша.
Получаем более правильный результат:
В действительности это sha256($pass.$salt).
Как рассчитать хеш (контрольную сумму)
В Linux имеются программы для расчёта и сверки популярных хешей:
Все эти программы установлены по умолчанию в большинстве дистрибутивов Linux, они позволяют рассчитать хеши для файлов или для строк.
Применение всех этих программ похожее – нужно указать имя файла, либо передать по стандартному вводу строку.
Если для расчёта хеша строки вы используете echo, то крайне важно указывать опцию -n, которая предотвращает добавление символа новой строки – иначе каждый хеш для строки будет неверным!
Пример подсчёта хеша SHA1 для строки test:
Ещё один способ передачи строки без добавления конечного символа newline
Этот же результат можно получить следующей конструкцией:
Программы для вычисления различных хешей
Кроме перечисленных встроенных в Linux утилит, имеются другие программы, способные подсчитывать контрольные суммы. Часто они поддерживают сразу несколько алгоритмов хеширования, могут иметь дополнительные опции ввода и вывода (поддерживают различные форматы и кодировки), некоторые из них подготовлены для выполнения аудита файловой системы (выявления несанкционированных изменений в файлах).
Список некоторых популярных программ для вычисления хешей:
Думаю, используя русскоязычную справку с примерами использования, вы без труда сможете разобраться в этих программах самостоятельно.
Последовательное хеширование с использованием трубы (|)
Но это неправильный вариант. Поскольку результатом выполнения в любом случае является непонятная строка из случайных символов, трудно не только обнаружить ошибку, но даже понять, что она есть. А ошибок здесь сразу несколько! И каждая из них ведёт к получению абсолютно неправильных данных.
Даже очень бывалые пользователи командной строки Linux не сразу поймут в чём проблема, а обнаружив первую проблему не сразу поймут, что есть ещё одна.
Очень важно помнить, что в строке вместе с хешем всегда выводится имя файла, поэтому выполняя довольно очевидную команду вроде следующей:
Выше уже рассмотрено, как из вывода удалять « -», кажется, теперь всё должно быть в порядке:
Давайте разобьём это действие на отдельные команды:
Второй этап хеширования:
Это и есть правильный ответ.
Проблема в том, что когда выводится промежуточный хеш, к нему добавляется символ новой строки, и второй хеш считается по этой полной строке, включающей невидимый символ!
Используя printf можно вывести результат без конечного символа новой строки:
Результат вновь правильный:
С printf не все дружат и проблематично использовать рассмотренную конструкцию если нужно хешировать более трёх раз, поэтому лучше использовать tr:
Вновь правильный результат:
Или даже сделаем ещё лучше – с программой awk будем использовать printf вместо print (это самый удобный и короткий вариант):
Как посчитать итерированные хеши
Итерация – это повторное применение какой-либо операции. Применительно к криптографии, итерациями называют многократное хеширование данных, которые получаются в результате хеширования. Например, для исходной строки в виде простого текста рассчитывается SHA1 хеш. Полученное значение вновь хешируется – рассчитывается SHA1 хеш и так далее много раз.
Итерация – очень эффективный метод для борьбы с радужными таблицами и с полным перебором (брут-форсом), поэтому в криптографии итерированные хеши очень популярны.
ХешДанных=ХешированиеДанных.ХешСумма ;
ХешДанных.Записать("D:\Текстовый файл.txt");
хш= НРег(СтрЗаменить(Строка(ХешированиеДанных.ХешСумма), " ", ""));
//62e37f6dc60083ba969f06ec2276a8682bec227b должно быть
//72 D8 85 FD 4B 28 50 DE EF C6 25 E2 47 0E BA 85 E2 99 64 AB возвращает
//72d885fd4b2850deefc625e2470eba85e29964ab -строка
В интернете нашел пару старых тем с такой же проблемой-только там либо решения до конца не приводятся . либоу меня ихметоды не срабатывают.
В в он лай сервисе получаю строку 62e37f6dc60083ba969f06ec2276a8682bec227b
мой код возвращает 72d885fd4b2850deefc625e2470eba85e29964ab
Что за онлайн-сервис? Проверил на нескольких - результат идентичен 1С.Вчера открывал сайт-сейчас найти не могу. Иностранный какой то -2 поля строка и ключ -и реально выдавал 62e37f6dc60083ba969f06ec2276a8682bec227b .
И в примере на сайте также значение 62e37f6dc60083ba969f06ec2276a8682bec227b формируется.
(5) Т.е. функции формирования хэш по ключу в 1с 8 стандартной нет? Только внешние библиотеки?
(6) есть, просто ты в эту функцию передаешь не то, что надо. Соответственно, получаешь не то, что хочешь
(7) Хорошо,что и куда нужно передать в моём случае,чтобы получить ответ=62e37f6dc60083ba969f06ec2276a8682bec227b ?
Подниму тему
(5) да наверное это и нужно, только по ссылке не понял до конца, что это за компонента. Нашел на просторах интернета статью "HMAC на встроенном языке 1С" , в ней вроде как все расписано, единственно на вход функции HMAC(Знач K, Знач text, Знач Hash) нужно посылать значение К(ключа) в шестнадцатеричном виде. Нашел функцию перевода строки в шестнадцатеричном код:
И все равно на выходе не получается не тот ответ:
Дальше что то не пойму куда копать- вроде все данные правильно указываю- на выходе все равно не неправильный ответ. Может у кого то еще идеи есть?
(10) Взял алгоритм по ссылке.Не получается получить строку нужную. Вроде все подставил -возвращает другое содержимое.
ДвоичныеДанные.Значение=CE CD B0 F9 49 82 A5 0C 35 49 A9 62 1B 2C 98 39 64 27 E1 BA
В чем еще проблема может быть?
Функция HMAC(Знач K, Знач text, Знач Hash),из статьи "HMAC на встроенном языке 1С" -я так и не понял.Хотя там только язык 1с используется -и она была бы предпочтительнее.
Всем откликнувшимся -большое спасибо, без ваших ссылок я вообще ничего не сделал бы/не нашел.
(15) Это по сути тоже самое, что и в Шифрование алгоритмом SHA1
Сегодня я хотел бы рассказать о том, что из себя представляет хеш-функция, коснуться её основных свойств, привести примеры использования и в общих чертах разобрать современный алгоритм хеширования SHA-3, который был опубликован в качестве Федерального Стандарта Обработки Информации США в 2015 году.
Общие сведения
Криптографическая хеш-функция - это математический алгоритм, который отображает данные произвольного размера в битовый массив фиксированного размера.
Для идеальной хеш-функции выполняются следующие условия:
Давайте сразу рассмотрим пример воздействия хеш-функции SHA3-256.
Число 256 в названии алгоритма означает, что на выходе мы получим строку фиксированной длины 256 бит независимо от того, какие данные поступят на вход.
На рисунке ниже видно, что на выходе функции мы имеем 64 цифры шестнадцатеричной системы счисления. Переводя это в двоичную систему, получаем желанные 256 бит.
Любой заинтересованный читатель задаст себе вопрос: "А что будет, если на вход подать данные, бинарный код которых во много раз превосходит 256 бит?"
Ответ таков: на выходе получим все те же 256 бит!
Дело в том, что 256 бит - это соответствий, то есть различных входов имеют свой уникальный хеш.
Чтобы прикинуть, насколько велико это значение, запишем его следующим образом:
Надеюсь, теперь нет сомнений в том, что это очень внушительное число!
Поэтому ничего не мешает нам сопоставлять длинному входному массиву данных массив фиксированной длины.
Свойства
Криптографическая хеш-функция должна уметь противостоять всем известным типам криптоаналитических атак.
В теоретической криптографии уровень безопасности хеш-функции определяется с использованием следующих свойств:
Pre-image resistance
Second pre-image resistance
Имея заданное входное значение , должно быть сложно найти другое входное значение такое, что
Collision resistance
Давайте чуть более подробно поговорим о каждом из перечисленных свойств.
Несмотря на то, что хеш-функций без коллизий не существует, некоторые из них достаточно надежны и считаются устойчивыми к коллизиям.
Second pre-image resistance. Это свойство называют сопротивлением второму прообразу. Для упрощения можно сказать, что это свойство находится где-то посередине между двумя предыдущими. Атака по нахождению второго прообраза происходит, когда злоумышленник находит определенный вход, который генерирует тот же хеш, что и другой вход, который ему уже известен. Другими словами, злоумышленник, зная, что пытается найти такое, что
Отсюда становится ясно, что атака по нахождению второго прообраза включает в себя поиск коллизии. Поэтому любая хеш-функция, устойчивая к коллизиям, также устойчива к атакам по поиску второго прообраза.
Неформально все эти свойства означают, что злоумышленник не сможет заменить или изменить входные данные, не меняя их хеша.
В частности, хеш-функция должна вести себя как можно более похоже на случайную функцию, оставаясь при этом детерминированной и эффективно вычислимой.
Применение хеш-функций
Рассмотрим несколько достаточно простых примеров применения хеш-функций:
• Верификация пароля
Проверка пароля обычно использует криптографические хеши. Хранение всех паролей пользователей в виде открытого текста может привести к массовому нарушению безопасности, если файл паролей будет скомпрометирован. Одним из способов уменьшения этой опасности является хранение в базе данных не самих паролей, а их хешей. При выполнении хеширования исходные пароли не могут быть восстановлены из сохраненных хеш-значений, поэтому если вы забыли свой пароль вам предложат сбросить его и придумать новый.
• Цифровая подпись
Подписываемые документы имеют различный объем, поэтому зачастую в схемах ЭП подпись ставится не на сам документ, а на его хеш. Вычисление хеша позволяет выявить малейшие изменения в документе при проверке подписи. Хеширование не входит в состав алгоритма ЭП, поэтому в схеме может быть применена любая надежная хеш-функция.
Предлагаю также рассмотреть следующий бытовой пример:
Алиса ставит перед Бобом сложную математическую задачу и утверждает, что она ее решила. Боб хотел бы попробовать решить задачу сам, но все же хотел бы быть уверенным, что Алиса не блефует. Поэтому Алиса записывает свое решение, вычисляет его хеш и сообщает Бобу (сохраняя решение в секрете). Затем, когда Боб сам придумает решение, Алиса может доказать, что она получила решение раньше Боба. Для этого ей нужно попросить Боба хешировать его решение и проверить, соответствует ли оно хеш-значению, которое она предоставила ему раньше.
Теперь давайте поговорим о SHA-3.
Национальный институт стандартов и технологий (NIST) в течение 2007—2012 провёл конкурс на новую криптографическую хеш-функцию, предназначенную для замены SHA-1 и SHA-2.
Организаторами были опубликованы некоторые критерии, на которых основывался выбор финалистов:
Способность противостоять атакам злоумышленников
• Производительность и стоимость
Вычислительная эффективность алгоритма и требования к оперативной памяти для программных реализаций, а также количество элементов для аппаратных реализаций
• Гибкость и простота дизайна
Гибкость в эффективной работе на самых разных платформах, гибкость в использовании параллелизма или расширений ISA для достижения более высокой производительности
В финальный тур попали всего 5 алгоритмов:
Победителем и новым SHA-3 стал алгоритм Keccak.
Давайте рассмотрим Keccak более подробно.
Keccak
Хеш-функции семейства Keccak построены на основе конструкции криптографической губки, в которой данные сначала «впитываются» в губку, а затем результат Z «отжимается» из губки.
Любая губчатая функция Keccak использует одну из семи перестановок которая обозначается , где
перестановки представляют собой итерационные конструкции, состоящие из последовательности почти одинаковых раундов. Число раундов зависит от ширины перестановки и задаётся как где
В качестве стандарта SHA-3 была выбрана перестановка Keccak-f[1600], для неё количество раундов
Далее будем рассматривать
Давайте сразу введем понятие строки состояния, которая играет важную роль в алгоритме.
Строка состояния представляет собой строку длины 1600 бит, которая делится на и части, которые называются скоростью и ёмкостью состояния соотвественно.
Соотношение деления зависит от конкретного алгоритма семейства, например, для SHA3-256
В SHA-3 строка состояния S представлена в виде массива слов длины бит, всего бит. В Keccak также могут использоваться слова длины , равные меньшим степеням 2.
Алгоритм получения хеш-функции можно разделить на несколько этапов:
• Строка P делится на n блоков длины
• «Впитывание»: каждый блок дополняется нулями до строки длиной бит (b = r+c) и суммируется по модулю 2 со строкой состояния , далее результат суммирования подаётся в функцию перестановки и получается новая строка состояния , которая опять суммируется по модулю 2 с блоком и дальше опять подаётся в функцию перестановки . Перед началом работы криптографической губки все элементыравны 0.
• «Отжимание»: пока длина результата меньше чем , где - количество бит в выходном массиве хеш-функции, первых бит строки состояния добавляется к результату . После каждой такой операции к строке состояния применяется функция перестановок и данные продолжают «отжиматься» дальше, пока не будет достигнуто значение длины выходных данных .
Все сразу станет понятно, когда вы посмотрите на картинку ниже:
Функция дополнения
Функция перестановок
Базовая функция перестановки состоит из раундов по пять шагов:
Тета, Ро, Пи, Хи, Йота
Далее будем использовать следующие обозначения:
Так как состояние имеет форму массива , то мы можем обозначить каждый бит состояния как
Обозначим результат преобразования состояния функцией перестановки
Также обозначим функцию, которая выполняет следующее соответствие:
- обычная функция трансляции, которая сопоставляет биту бит ,
где - длина слова (64 бит в нашем случае)
Я хочу вкратце описать каждый шаг функции перестановок, не вдаваясь в математические свойства каждого.
Шаг
Эффект отображения можно описать следующим образом: оно добавляет к каждому биту побитовую сумму двух столбцов и
Схематическое представление функции:
Шаг
Отображение направлено на трансляции внутри слов (вдоль оси z).
Проще всего его описать псевдокодом и схематическим рисунком:
Шаг
Шаг представляется псевдокодом и схематическим рисунком:
Шаг
Шаг является единственный нелинейным преобразованием в
Псевдокод и схематическое представление:
Шаг
Отображение состоит из сложения с раундовыми константами и направлено на нарушение симметрии. Без него все раунды были бы эквивалентными, что делало бы его подверженным атакам, использующим симметрию. По мере увеличения раундовые константы добавляют все больше и больше асимметрии.
Ниже приведена таблица раундовых констант для бит
Все шаги можно объединить вместе и тогда мы получим следующее:
Где константы являются циклическими сдвигами и задаются таблицей:
Итоги
В данной статье я постарался объяснить, что такое хеш-функция и зачем она нужна
Также в общих чертах мной был разобран принцип работы алгоритма SHA-3 Keccak, который является последним стандартизированным алгоритмом семейства Secure Hash Algorithm
Преобразование dec to hex и hex to dec
Специальные предложения
Скопировал код из статьи в обработку. Ввожу ключ - 123, текст - sss, функцию - sha-1 и получаю hmac - da2a7fa2ac3e18892b6d0d24221285fa1030b03d. Разве он не должен быть, как на скриншоте 83е.
Ввожу ключ - 123456, тест - Вышел зайчик погулять, функцию - sha-1 и получаю:
нет, потому что ключ нужно передавать в шестнадцатеричном виде.
Ввожу ключ - 123456, тест - Вышел зайчик погулять, функцию - sha-1 и получаю:Добавил поддержку кирилицы
в файле обработки есть пример
пробовал реализовать sha256 на приведенном примере. Но хеш получается другой. Нежели генерировать его в online конвертерах. В коде какая-то ошибка ?Функция HMAC(Знач K, Знач text, Знач Hash)
А если ключ "K" это строка,а не число. Как его зашифровать в этот параметр?
(10) Да, все будет работать.И да, хеширования SHA-384 в 1С нет (:
АПИСекрет = "cEMBFULinI6rzG3mYKL45czc81pjU7BXbwImC1CFNXk";
Сигнатура = "8692c7a03a684765ac5fe04f04dd72c8POSThttps://localhost/api/getopenorders11223311FxOYiYfpMxmANj4kGJzg= SHA256");
На выходе 224c54567d42c5c3537bc305329694347fba095592094d6e88a2f342e788 ec1e
PHP:
$hmacsignature = base64_encode( hash_hmac("sha256", $signature, base64_decode( $API_SECRET ), true ) );
На выходе: v+YF+qxhVqB95bjKZB7bN7ywpTgoPUleObTmXNoEE2E=
Приложенные pdf-файлы с лабораторными работами представляют собой описание последовательности действий (с заданием, программным кодом и скриншотами).
Лабораторная работа №1. Шифрование и расшифровка строковых полей справочников модифицированным методом Виженера.Описание работы
В лабораторной работе рассмотрен пример реализации шифрования и расшифровки произвольных текстовых полей справочников с помощью метода Виженера (материалы работы базируются на публикации «Шифрование и расшифровка строковых полей справочников методом Виженера (с улучшениями)»).
Порядок работы
1. Должен быть реализован функционал шифрования и расшифровки по паролю, заданному пользователем.
2. Зашифрованные данные должны храниться в полях исходных данных, т.е. длина зашифрованного текста должна быть равной длине исходного текста, дополнительных таблиц быть не должно.
3. Список полей для шифрования и расшифровки должен быть настраиваемым и не зависеть от конфигурации 1С.
4. Шифрование должно выполняться средствами платформы 1С без внешних компонент, com-объектов и т.д. (для исключения зависимости от операционной системы).
Описание работы
Использование метода Вижинера без контроля используемого пароля может при расшифровке испортить данные. Цель данной работы научиться работать с контрольной (хеш) суммой. В лабораторной работе рассмотрен пример реализации шифрования и расшифровки произвольных текстовых полей справочников с проверкой зашифрованных данных с помощью контрольной (хеш) суммы (исходные материалы доступны по ссылке 1 и ссылке 2).
Порядок работы
1. Должен быть реализован функционал шифрования и расшифровки по паролю, заданному пользователем.
2. Зашифрованные данные должны храниться в полях исходных данных, т.е. длина зашифрованного текста должна быть равной длине исходного текста, дополнительных таблиц быть не должно.
3. Список полей для шифрования и расшифровки должен быть настраиваемым и не зависеть от конфигурации 1С.
4. Шифрование должно выполняться средствами платформы 1С без внешних компонент, com-объектов и т.д. (для исключения зависимости от операционной системы).
5. При шифровании должна вычисляться контрольная хеш-сумма на основании пользовательского пароля одним из четырех алгоритмов (на выбор пользователя). Данная хеш-сумма должна сохраняться в хранилище общих настроек конфигурации.
6. При расшифровке указанный пользователем паролем должен проверяться на равенство с ранее сохранённой хеш-суммой и, в случае несовпадения, не позволять пользователю расшифровать данные (чтобы не испортить их).
Часть кода лабораторной работы №2 базируется на 1-й лабораторной работе, но есть и отличия:
Лабораторная работа №3. Метод симметричного шифрования.Описание работы
Цель данной работы научиться использовать метод симметричного шифрования, который расшифрует только при правильном пароле. В лабораторной работе рассмотрен пример реализации шифрования и расшифровки произвольных текстовых полей справочника (материалы работы базируются на публикации «Симметричное шифрование в 1С»).
Порядок работы
1. Должен быть реализован функционал шифрования и расшифровки по паролю, заданному пользователем.
2. Зашифрованные данные должны храниться в реквизитах соответствующих элементах справочника.
3. Шифрование должно выполняться исключительно средствами платформы 1С.
Ниже приведен программный код, реализованный в данной лабораторной работе:
Лабораторная работа №4. Использование хеш-суммы для контроля изменения значений справочника.Описание работы
Часто в работе пользователей с данными возникает ситуация, когда пользователь хочет быть уверен, что его данные не изменялись другими пользователями. При этом данных бывает очень много и пользователь не может быстро вручную проверить все данные на предмет отсутствия внесения в них несанкционированных изменений (материалы работы базируются на публикации "Хеширование данных с ключом по алгоритму SHA-1 штатными средствами 1С").
Ниже приведен программный код, реализованный в данной лабораторной работе:
К публикации приложена база 1С, в которой реализованы все четыре лабораторные работы. Конфигурация должна работать на любой платформе более-менее современной платформе «1С:Предприятие 8» (режим совместимости специально установил как «Версия 8.3.10»). Разработка и тестирование осуществлялись на базе учебной платформы «1С:Предприятие 8.3, учебная версия» (8.3.16.1224).
Читайте также: