Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Хеширование sha-1 , Разъяснения и алгоритм данного процесса          
roman457 Подменю пользователя
сообщение 24.10.16, 13:12
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 2 раз
Рейтинг: 0

Здравствуйте . Прошу сильно не пинать.
Поставлена задача заказчиком чтобы в письме формировалась ссылка на liqpay в которой будут передаваться данные
Проблема заключается в том что это нужно зашифровать base64 ( предварительно получив хеш строкового выражения).
На инфостаре есть тема по этому поводу, но по скольку я с этим не сталкивался ранее видимо не хватает знаний . ( [необходимо зарегистрироваться для просмотра ссылки].
Википедия тоже как-то не принесла просветлений...
Может кто поможет с обработкой или разъяснениями . вообщем
Все варианты вроде работают но результат не правильный . . . За любой свет спасибо за ранее.

Vofka Подменю пользователя
сообщение 24.10.16, 13:15
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Хеширование = Новый ХешированиеДанных(ХешФункция.SHA1);
Хеширование.Добавить("МояСтрока");
Хеш = Хеширование.ХешСумма;


Сообщение отредактировал Vofka - 24.10.16, 13:15

Спасибо сказали: roman457,

roman457 Подменю пользователя
сообщение 24.10.16, 14:59
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 55
Спасибо сказали: 2 раз
Рейтинг: 0

спасибо полдела сделано . согласно примера хеш мы получили, теперь этот хеш нужно закодировать в 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Строка(ДвДанные);
    
    УдалитьФайлы(ВременныйФайл);
    
КонецПроцедуры

Игрался с кодировками , нужного результата не достигнуто .

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 23.04.24, 20:04
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!