Шифрование текста, хеш сумма

19.06.15

Разработка - Защита ПО и шифрование

Этот пример показывает, что использование шифрования и получение хеш суммы очень просто. В обработке реализовано шифрование по алгоритму AES и получение хеш суммы MD5. Все делается динамически, без использования файлов.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Шифрование.epf
.epf 8,18Kb
88 3 000 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Шифрование - полезная штука, иногда возникают задачи, где без использования шифрования не обойтись.
Предположим, у вас есть программист, который занимается разработкой конфигурации и администрированием, естественно, разграничить его права нецелесообразно, потому что понадобится человек, кто будет занимается администрированием.

 А что делать, если есть данные, которые разработчик не должен видеть, но у него должен быть полный доступ к системе?
 Может показаться, что это парадокс, но есть решение!
 
Шифрование данных!

 Я просто продемонстрировал, как можно использовать то, что у нас есть под рукой, Вы можете сами выбрать желаемый алгоритм, документация по ссылке: https://msdn.microsoft.com/ru-ru/library/system.security.cryptography.aspx 

Обработкой пользоваться очень просто.

Надо:

Для шифрования

    1. Заполнить "Открытый текст" для шифрования
    2. Заполнить ключ пароль для шифрования
    3. Нажать на кнопку "Шифровать"

    В результате в поле "Закрытый текст" мы получим зашифрованную строку.

    P.S. т.к результатом шифрования является массив чисел для отображения в текстовом виде, я использую функцию
          "ЗначениеВСтрокуВнутр".
            В принципе, можно хранить или в хранилище значений, или написать свой какой-то алгоритм хранения массива. 

 Для расшифрования

    1. Заполняем закрытый текст
    2.
 Заполнить ключ пароль для расшифровки
    3. Нажимаем кнопку "Расшифровать" 


 В основном во всех блочных алгоритмах шифрования есть вектор инициализации.
Для наглядности обработка показывает этот вектор инициализации, каждый раз генерируется новый, поэтому если нужно иметь статичный, просто создайте массив со значениями из произвольного сгенерированного вектора. 

Вступайте в нашу телеграмм-группу Инфостарт

Шифрование

См. также

Защита ПО и шифрование Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Настоящее современное криптостойкое шифрование с помощью сертификатов.

9 стартмани

01.09.2026    849    0    SerVer1C    9    

9

Защита ПО и шифрование Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Россия Абонемент ($m)

Дешифровка PEM файлов с SGN пакетом. PEM - стандартизированный текстовый формат текстовых контейнеров, используемый для безопасного хранения и передачи криптографических ключей, SSL/TLS-сертификатов и запросов на подпись (CSR). (Privacy-Enhanced Mail). SGN - стандартизированное расширение файла, содержащего отсоединенную (detached) электронную цифровую подпись для целевого документа. Пример файла: reportfile.zip.sgn.pem

1 стартмани

21.08.2026    584    0    DrZombi    1    

8

Защита ПО и шифрование Разработчик 1С 8.3 1С:Розница 2 Бесплатно (free)

Учебная обработка показывает, как 1С шифрует номер карты публичным ключом RSA перед отправкой в платёжный шлюз и подписывает тело запроса - на чистом встроенном языке, без COM, .NET и внешних компонент. Почти все реализации RSA в 1С зовут .NET через COM, а он требует регистрации сборки и не работает на Linux и в тонком клиенте. Здесь RSA написан целиком на BSL: длинная арифметика, деление Кнута, возведение в степень по модулю. Корректность сверена с эталоном на больших числах байт в байт. Демо-ключ 256 бит, всё локально, одной кнопкой. Код открыт.

07.08.2026    1035    7    nedomolkov.ivan    1    

3

Защита ПО и шифрование Разработчик Бесплатно (free)

Платёжный шлюз принимает номер карты только зашифрованным по RSA, а почти все реализации RSA в 1С зовут .NET через COM - и это молча ломается на Linux-сервере, в тонком клиенте и на голой Windows без regasm. Разбираю, как написать RSA целиком на встроенном языке: как хранить большие числа лимбами по основанию миллион, откуда берётся деление Кнута и square-and-multiply, почему первая версия считала 25 секунд и как это ускорилось в 8 раз. С проверкой байт в байт против внешнего эталона на больших числах.

07.08.2026    1819    nedomolkov.ivan    3    

4

Защита ПО и шифрование Разработчик 1С:Предприятие 8 Бесплатно (free)

Платформенная защита модулей конфигураций, внешних обработок и расширений 1С легко «взламывается» общедоступными декомпиляторами, а использование СЛК (Система лицензирования и защиты конфигураций) часто избыточно из-за необходимости установки дополнительного ПО и покупки ключей. Рассмотрим использование методики защиты логики через обфускацию байт-кода, а именно частный случай использования метода, который позволит привязать решение к «железу» пользователя без использования внешних компонент и онлайн-активации.

19.02.2026    4164    1c-izh    9    

9

Защита ПО и шифрование Разработчик Бухгалтер Пользователь 1С:Предприятие 8 Россия Абонемент ($m)

Обработка для подписи с помощью сертификата (ЭЦП) произвольных файлов, средствами платформы 1С.

5 стартмани

19.06.2025    2442    4    krundel    2    

0

Защита ПО и шифрование 1С:Предприятие 8 Абонемент ($m)

Как спрятать свои секретные файлы от глаз любого? Всё просто, прячем все свои файлы (видео. документы, архивы, фото, да вообще любые файлы) в картинку или фото. Картинка при этом остается такой же красочной и визуально не изменившейся (лишь подрастет её вес). Стало интересно? Посмотри, как это делается, на скриншотах, если лень читать описание.

1 стартмани

03.06.2025    3037    user1195929    13    

4

Защита ПО и шифрование Разработчик 1С:Предприятие 8 Абонемент ($m)

Статья посвящена практическому применению XOR-шифрования в среде 1С:Предприятие. Рассматривается теоретическая основа операции XOR, её особенности как метода шифрования, а также преимущества и недостатки в контексте защиты данных. Подробно описываются методы реализации XOR-шифрования и дешифрования на языке 1С, включая примеры кода и практические сценарии использования, такие как шифрование паролей, защита конфиденциальных данных в файлах и передача зашифрованной информации между системами. Обсуждаются аспекты безопасности, выбор ключей, а также интеграция с другими механизмами защиты данных в 1С. Статья ориентирована на разработчиков 1С, стремящихся повысить уровень защиты информации в своих решениях.

1 стартмани

09.04.2025    4741    user1195929    6    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nihfalck 15.04.15 16:54 Сейчас в теме
скачать пока не могу, к сожалению. поэтому спрошу - как .Net - класс System.Security.Cryptography.AesManaged затащили в 1С? или обошлись RijndaelManaged?
2. MherArsh 35 15.04.15 20:02 Сейчас в теме
(1) nihfalck, испоьлзовал класс RijndaelManaged
3. MherArsh 35 16.04.15 10:14 Сейчас в теме
(1) nihfalck, вопрос в том что для классу System.Security.Cryptography.AesManaged не предоставляется COM интерфейс.
Список доступных криптографических классов которые доступны можно посмотреть программой oleview.exe от Microsoft.

4. nihfalck 16.04.15 13:19 Сейчас в теме
(3) спасибо. про утилиту oleview.exe не знал - сидел мучился методом тыка.
5. MherArsh 35 16.04.15 17:43 Сейчас в теме
(4) nihfalck, Пожалуйста :)
6. eugeniezheludkov 45 20.04.15 03:03 Сейчас в теме
жаль что base64, base58, hex не изобрели до сих пор, тоже мучаюсь pgp ключи храню в виде внутреннего формата 1С {#,N,100,....}...
ПС: в 1С существует несколько способов превратить массив в base64.
в случае с шифрами есть класс stringbuilder с его appendFormat

	Текст = Новый COMОбъект("System.Text.UTF8Encoding");
	КриптоSHA512 = Новый COMОбъект("System.Security.Cryptography.SHA512Managed");
	КриптоSHA1 = Новый COMОбъект("System.Security.Cryptography.SHA1Managed");
	КриптоSHA256 = Новый COMОбъект("System.Security.Cryptography.SHA256Managed");
	КриптоMD5 = Новый  COMОбъект("System.Security.Cryptography.MD5CryptoServiceProvider");
	
	оStr = Новый COMОбъект("System.Text.StringBuilder");
	Хэш512 = КриптоSHA512.ComputeHash_2(Текст.GetBytes_4(Т)).Выгрузить();	
	Хэш1 = КриптоSHA1.ComputeHash_2(Текст.GetBytes_4(Т)).Выгрузить();
	Хэш256 = КриптоSHA256.ComputeHash_2(Текст.GetBytes_4(Т)).Выгрузить();
	Для Каждого стр Из  Хэш1 Цикл
		оStr.AppendFormat("{0:x02}", стр);
    КонецЦикла;
	Сообщить(  оStr.ToString);
Показать


или так еще значениевстрокувнутр(новый хранилищезначений(массив)) так будет запись короче и проще
KolBbl4; nihfalck; MherArsh; +3 – Ответить
7. MherArsh 35 20.04.15 11:12 Сейчас в теме
(6) eugeniezheludkov, Привет! Спасибо, вариант хороший!
Я с начала тоже думал привести к определенному формату, но в результате возврата мы получаем массив,
ее можно хранить в хранилище значений я в строку перевел чтобы было наглядно, и вообще старался поменьше
внешнего использовать :)

А для base64 есть класс доступный через COM.
Называется - "FromBase64Transform"
https://msdn.microsoft.com/ru-ru/library/system.security.cryptography.frombase64transform.aspx

dctvghbdtn; +1 – Ответить
8. dctvghbdtn 16.01.17 12:41 Сейчас в теме
А можно открытый кусочек кода для AES? Как зашифровать и расшифровать строку.
9. MherArsh 35 16.01.17 17:12 Сейчас в теме
(8) На 1С? или на .Net?
dctvghbdtn; +1 – Ответить
10. dctvghbdtn 16.01.17 17:13 Сейчас в теме
(9) На 1С. :) Не могу скачать обработку, не хватает "кредитов".
11. MherArsh 35 16.01.17 17:16 Сейчас в теме
(10) ну на 1С такого не могу предложить но могу на C#.
dctvghbdtn; +1 – Ответить
12. dctvghbdtn 16.01.17 17:18 Сейчас в теме
(11) так пример в обработке, которую вы опубликовали http://infostart.ru/public/346065/ :)
13. MherArsh 35 16.01.17 17:56 Сейчас в теме
(12) В винде AES доступен по COM "System.Security.Cryptography.RijndaelManaged".
Вот примеры использования библиотеки:

https://msdn.microsoft.com/ru-ru/library/system.security.cryptography.rijndaelmanaged(v=vs.110).aspx

https://www.codeproject.com/Tips/704372/How-to-Use-Rijndael-ManagedEncryption-with-Csharp

А как в 1С сделать вызов функций можно посмотреть в моей обработке.
dctvghbdtn; +1 – Ответить
15. MherArsh 35 16.01.17 18:23 Сейчас в теме
(12) для MD5 есть "System.Security.Cryptography.MD5CryptoServiceProvider", все таки это нативный интерфейс провайдера через скрипт могут быть разные проблемы, но это к слову.

Верно, ГОСТ 28147-89 это российский, поэтому наверное нет и до 1989г. алгоритм был закрытым кстати )
Когда что то не хватает в 1С я пишу invoke метод на C#, регистрирую через regasm и все, функция становится доступной через com.
Реализацию алгоритма можно найти в сети, есть куча (делал я под С++ но вряд ли найду), по идее надо взять любой из них, написать несколько invoke функций для получения ключа, шифрования и дешифрирования и передавать значения к уже реализованному объекту который будет в исходниках.

Вот описание алгоритма и реализация, в конце стати можно скачать исходники.
https://habrahabr.ru/post/256843/

Если по invoke-у не разберешься могу найти у себя шаблон.

dctvghbdtn; ture; +2 – Ответить
22. dctvghbdtn 26.01.17 17:33 Сейчас в теме
Массив можно хранить так, взято по аналогии из "Библиотека стандартных подсистем":

//1
Результат = СоздатьВекторИнициализации();
//2 Массив в строку
Хранилище = Новый ХранилищеЗначения(Результат.Выгрузить(), Новый СжатиеДанных(9));
Результат = XMLСтрока(Хранилище);
//3 Из строки в массив
Хранилище = XMLЗначение(Тип("ХранилищеЗначения"), Результат);
Результат = Хранилище.Получить();


По моему мнению конечно по ресурсам затратно. Что можно еще использовать?

А использовать ЗначениеИзСтрокиВнутр и ЗначениеВСтрокуВнутр 1С-ники сами не рекомендуют:
Используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется.
14. ture 617 16.01.17 18:03 Сейчас в теме
(0) я тоже md5 считал раньше http://infostart.ru/public/275138/
но интересней шифрование ГОСТ 28147-89, которого нет в System.Security.Cryptography. Знаешь как?
16. dctvghbdtn 18.01.17 15:04 Сейчас в теме
Объясните пожалуйста почему используется недокументированная функция ComputeHash_2? Может быть так, что завтра ее не будет в методах?
17. MherArsh 35 18.01.17 21:04 Сейчас в теме
(16)
ComputeHash_2
потому что в объекте нет другой функции, но если даже ее закрою можно использовать другую хеш функцию, а закроют или нет вопрос не ко мне, но вряд ли.
18. dctvghbdtn 20.01.17 14:59 Сейчас в теме
Про 1С. :) Нашел вот такое в документации:

Механизм криптографии «1С:Предприятия» не содержит реализации собственно алгоритмов криптографии. Он обеспечивает набор объектов, позволяющих взаимодействовать с внешними модулями криптографии сторонних производителей.

Для взаимодействия с модулями криптографии в ОС Windows используется Microsoft CryptoAPI.

Для взаимодействия с модулями криптографии в ОС Linux используется непосредственное взаимодействие с установленными компонентами.
MherArsh; +1 – Ответить
19. MherArsh 35 20.01.17 21:23 Сейчас в теме
(18) я этот API по моему смотрел, поддержка по моему начинается в поздних версиях 1С и там когда я смотрел была возможность шифрования только по файлам, а мене надо была шифровать и расшифровать таблицы в реальном времени
20. MherArsh 35 20.01.17 21:23 Сейчас в теме
(18) не забудь поделится примером
21. dctvghbdtn 24.01.17 15:56 Сейчас в теме
По поводу суффикса нашел вот это короткое обсуждение

http://stackoverflow.com/questions/36384741/cant-use-getbytes-and-computehash-methods-on-vba

Если так, то наличие суффиксов, это не недокументированная функция, а "способ" перегрузки функций Net при использовании COM
MherArsh; +1 – Ответить
Для отправки сообщения требуется регистрация/авторизация