|
Как сделать хэш | ☑ | ||
---|---|---|---|---|
0
mrCreator
26.12.16
✎
08:17
|
Всем добрый день!
подскажите пожалуйста как средствами 1С сделать хеш по такому шаблону: $hash = MD5(login.MD5(password).SALT) |
|||
1
DrZombi
гуру
26.12.16
✎
08:25
|
(0) Что такое "MD5" ?
Где описание логики работы функции? :) |
|||
2
DrZombi
гуру
26.12.16
✎
08:26
|
Простой хэш своими руками :)
http://tuzik87.ru54.com/site/creative/article/hash.html |
|||
3
Это_mike
26.12.16
✎
08:26
|
(1) дык этта... https://ru.wikipedia.org/wiki/MD5
|
|||
4
d546
26.12.16
✎
08:27
|
ХешированиеДанных (DataHashing)
Свойства: ХешСумма (HashSum) ХешФункция (HashFunction) Методы: Добавить (Append) ДобавитьФайл (AppendFile) Конструкторы: По указанной хеш-функции Описание: Реализует инкрементальный расчет хеш-суммы по добавленным данным. Способ расчета и тип вычисляемого значения определяются типом хеш-функции. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). См. также: ХешФункция |
|||
5
shpioleg
26.12.16
✎
08:27
|
Класс ХешированиеДанных курил?
|
|||
6
DrZombi
гуру
26.12.16
✎
08:28
|
(3) Он, конечно. Но я думал ТС до этого сам должен был придти :DDDD
Но судя по вопросам, он скромно не упомянул, что ему нужен код писаный на 1С :) http://1c-programmer-blog.ru/programmirovanie/md5-v-1s.html |
|||
7
mrCreator
26.12.16
✎
08:30
|
не совсем у меня возникла сложность понимания именно конструкции.
вот это я нашел на просторах интернета: Хеш = Новый ХешированиеДанных(ХешФункция.MD5); Хеш.Добавить(тСтрока); Возврат Хеш.ХешСумма; не могу понять как мне собрать вот такую конструкцию: MD5(login.MD5(password).SALT) |
|||
8
mrCreator
26.12.16
✎
08:32
|
Вот так верно будет или как?:
Хеш = Новый ХешированиеДанных(ХешФункция.MD5); Хеш.Добавить(password); Пароль = Хеш.ХешСумма; Хеш2 = Новый ХешированиеДанных(ХешФункция.MD5); Хеш2.Добавить("логин."+Пароль+"."+"соль"); ИтоговоаяСтрока = Хеш2.ХешСумма; |
|||
9
d546
26.12.16
✎
08:34
|
$hash = MD5(login.MD5(password).SALT)
это хоть на каком языке? |
|||
10
d546
26.12.16
✎
08:36
|
Хеш2.Добавить("логин."+Пароль+"."+"соль");
понравился перевод-интерпретация кода :) |
|||
11
mrCreator
26.12.16
✎
08:40
|
:)
Это у меня написано в описании API при подключении к стороннему WEB-сервису. Указано, что с забросом обязательно нужно передавать хэш такого вида.... |
|||
12
Asmody
26.12.16
✎
08:40
|
(8) точка в логине лишняя.
(9) php это |
|||
13
Это_mike
26.12.16
✎
08:41
|
(10) а госнаркоконтроль не возражает?
|
|||
14
mrCreator
26.12.16
✎
08:41
|
(12) а перед солью точка должна остаться?
|
|||
15
mrCreator
26.12.16
✎
08:46
|
Вот так должно получиться:
Хеш2.Добавить("логин."+Пароль+"."+"соль"); или вот так: Хеш2.Добавить("логин"+Пароль+"соль"); или так: Хеш2.Добавить("логин"+Пароль+"."+"соль"); |
|||
16
shpioleg
26.12.16
✎
08:47
|
Есть подозрение, что тебе 3 раза в 1С придется вызывать хеширование, чтобы итоговая сумма была в ХешСумма.
В 1С метод Добавить принимает на вход строку или ДвоичныеДанные |
|||
17
shpioleg
26.12.16
✎
08:53
|
В Хеш.ХешСумма должен быть результат |
|||
18
mrCreator
26.12.16
✎
08:56
|
Спасибо!
Это похоже на правду :) Буду пробовать... |
|||
19
mrCreator
26.12.16
✎
10:12
|
С результатом пришлось еще повозиться...
результат функции есть Двоичные данные (которые на самом деле являются шестнадцатиричными), которые нужно еще перевести в строку и метод xbase64строка() возвращает строку в неверном формате. Поиски нормального решения перевода не увенчались успехом и т.к. эта строка в моём случае всегда будет одной и той же, я решил воспользоваться обычным онлайн переводом из двоичных данных в строку https://www.calc.ru/kalkulyator-kodov.html и вот оно счастье у меня хэш в нормальном виде, таком каком он нужен :) Извращения дело добровольное |
|||
20
DrZombi
гуру
26.12.16
✎
10:43
|
(11) Сперва разберись, на каком языке написано, что за Солд и что содержит... А потом к 1С переходи :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |