Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Хеширование sha-1
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
roman457
Здравствуйте . Прошу сильно не пинать.
Поставлена задача заказчиком чтобы в письме формировалась ссылка на liqpay в которой будут передаваться данные
Проблема заключается в том что это нужно зашифровать base64 ( предварительно получив хеш строкового выражения).
На инфостаре есть тема по этому поводу, но по скольку я с этим не сталкивался ранее видимо не хватает знаний . ( необходимо зарегистрироваться для просмотра ссылки.
Википедия тоже как-то не принесла просветлений...
Может кто поможет с обработкой или разъяснениями . вообщем
Все варианты вроде работают но результат не правильный . . . За любой свет спасибо за ранее.
Vofka
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA1);
Хеширование.Добавить("МояСтрока");
Хеш = Хеширование.ХешСумма;
roman457
спасибо полдела сделано . согласно примера хеш мы получили, теперь этот хеш нужно закодировать в base64 ( и опять не сходится контрольное значение )
Ответ я так понимаю должен быть 2PRZAyDhNDqRw20UFwZQqPNdaSY=
а получается не правильные данные

Результат = base64_encode( sha1("sha", 1 ) )

Код использую
Процедура Encode("Моя строка") //D8 F4 59 03 20 E1 34 3A 91 5B 63 94 17 06 50 A8 F3 5D 69 26
    
    КодировкаФайла = Кодировка;
    
    Если Кодировка = "ANSI" Тогда
        КодировкаФайла = КодировкаТекста.ANSI;
        
    ИначеЕсли Кодировка = "OEM" Тогда
        КодировкаФайла = КодировкаТекста.OEM;
        
    ИначеЕсли Кодировка = "UTF8" Тогда
        КодировкаФайла = КодировкаТекста.UTF8;
        
    ИначеЕсли Кодировка = "UTF16" Тогда
        КодировкаФайла = КодировкаТекста.UTF16;
        
    ИначеЕсли Кодировка = "Системная" Тогда
        КодировкаФайла = КодировкаТекста.Системная;
    
    КонецЕсли;
    ВременныйФайл = ПолучитьИмяВременногоФайла();
    
    Запись = Новый ЗаписьТекста(ВременныйФайл, КодировкаФайла);
    Запись.Записать(Моя строка);
    Запись.Закрыть();
    
    ДвДанные = Новый ДвоичныеДанные(ВременныйФайл);
    Encoded = Base64Строка(ДвДанные);
    
    УдалитьФайлы(ВременныйФайл);
    
КонецПроцедуры

Игрался с кодировками , нужного результата не достигнуто .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.