|
SHA256 для 8.3.3 | ☑ | ||
---|---|---|---|---|
0
Avily
23.12.13
✎
11:36
|
Добрый день, подскажите пожалуйста.
Мне нужно зашифровать строку функцией SHA256. Нашла информацию, что в 8.3.3 это реализовано, но нигде нет примера кода. Помогите пожалуйста, как это написать? |
|||
1
Леха Дум
23.12.13
✎
11:41
|
Без фотки тема не взлетит!
|
|||
2
Avily
23.12.13
✎
11:43
|
Поставила уже... :-)
|
|||
3
oleg_km
23.12.13
✎
11:45
|
В синтаксис-помощнике почитай ХешированиеДанных. Если будет непонятно - пиши.
|
|||
4
Avily
23.12.13
✎
11:46
|
не понятно, прочитала
|
|||
5
Avily
23.12.13
✎
11:47
|
ХешДанных=Новый ХешированиеДанных(SHA256(SHA256))
а дальше как? |
|||
6
oleg_km
23.12.13
✎
11:47
|
Что именно не понятно?
|
|||
7
Avily
23.12.13
✎
11:48
|
в какой момент передавать строку, которую я хочу хешировать
|
|||
8
Avily
23.12.13
✎
11:48
|
мб
ХешДанных.Добавить(СтрокаДляХеширования); |
|||
9
Avily
23.12.13
✎
11:50
|
мне бы просто пример кода с хешированием... а дальше я сама разберусь, ни разу не сталкивалась
|
|||
10
oleg_km
23.12.13
✎
11:52
|
Давайте по порядку. Зачем вам нужен хеш: вы его сами будете проверять или его будет проверять другое приложение? Просто от этого будет зависеть, подходит ли функция ХешДанных.Добавить(СтрокаДляХеширования);
|
|||
11
Avily
23.12.13
✎
11:56
|
мне нужно передать данные на сайт через WS-ссылку, там есть функция:
Функция(Данные,Ключ) Данные - это строка (json) - ее я формирую программно Ключ - это то, что я должна получить при прогоне строки Данные через SHA256 Вот ключ мне и нужно получить |
|||
12
Avily
23.12.13
✎
11:56
|
сайт будет обрабатывать эти Данные и сравнивать такой же у него получился Ключ или нет
|
|||
13
Avily
23.12.13
✎
11:58
|
у меня и на эту строку ругается:
ХешДанных=Новый ХешированиеДанных(SHA256(SHA256)) не знаю как правильно указать тип функции в параметре |
|||
14
Avily
23.12.13
✎
11:59
|
с этим разобралась:
Х ешДанных=Новый ХешированиеДанных(ХешФункция.SHA256) ; |
|||
15
Serginio1
23.12.13
✎
12:00
|
Хэш=Новый ХешированиеДанных(ХешФункция.SHA256);
Хэш.Добавить("Тра ля ля"); Сообщить(Хэш.ХешСумма); |
|||
16
Serginio1
23.12.13
✎
12:01
|
ХешСумма (HashSum)
Использование: Только чтение. Описание: Тип: Число; ДвоичныеДанные. Содержит текущее значение хеш-суммы. Для функций MD5, SHA1 и SHA256 – значение типа ДвоичныеДанные, для функции CRC32 – Число. |
|||
17
oleg_km
23.12.13
✎
12:02
|
(15) Проблема может быть в кодировке. Добавить воспринимает кодировку UTF8, а сайт? И в каком виде сайт ждет значение хеша?
|
|||
18
Avily
23.12.13
✎
12:04
|
строку ждет
|
|||
19
Avily
23.12.13
✎
12:04
|
а я двоичные данные получила, можно как то перевести?
|
|||
20
oleg_km
23.12.13
✎
12:13
|
Вроде как Строка(ДвоичныеДанные) сейчас как раз переводит байты в шестнадцатеричное представление. Только тебе наверное пробелы нужно выкинуть. В каком виде сайт ждет хеш, пример можешь кинуть?
|
|||
21
Avily
23.12.13
✎
12:14
|
94f6f771181eada99eecaa22228e5f261501b5a4466cec860dc0ffcb906b21c5
|
|||
22
Avily
23.12.13
✎
12:16
|
сделала Строка(ДвоичныеДанные) , он мне в точности такуюже строку получил как двоичные данные были
|
|||
23
oleg_km
23.12.13
✎
12:19
|
Полный свой код приведи
|
|||
24
Avily
23.12.13
✎
12:19
|
Функция ПолучитьКлючШифрования(Шифр)
Хэш=Новый ХешированиеДанных(ХешФункция.SHA256); Хэш.Добавить(Шифр); Возврат Хэш.ХешСумма; КонецФункции |
|||
25
Avily
23.12.13
✎
12:20
|
получаю 61 91 C7 36 3B D5 AB 88 08 BC 04 67 76 39 F2 B3 76 17 4D 23 FC 25 59 A1 7D 36 D4 0A 15 66 6B FF
|
|||
26
Avily
23.12.13
✎
12:20
|
а мне надо что-то типо 94f6f771181eada99eecaa22228e5f261501b5a4466cec860dc0ffcb906b21c5
|
|||
27
Serginio1
23.12.13
✎
12:22
|
Base64Строка или XmlСтрока
|
|||
28
Avily
23.12.13
✎
12:24
|
пробовала, они одно и то же возвращают и мне не подходит
|
|||
29
oleg_km
23.12.13
✎
12:26
|
Функция ПолучитьКлючШифрования(Шифр)
Хэш=Новый ХешированиеДанных(ХешФункция.SHA256); Хэш.Добавить(Шифр); Возврат Хэш.ХешСумма; КонецФункции Функция Добавить воспринимает Шифр как набор байтов в кодировке UTF8, а сайт возможно считает, что строка Шифр должна быть в другой кодировке, например в ANSI. Нужно узнать, в какой кодировке разработчики сайта хешат строку Шифр. |
|||
30
Serginio1
23.12.13
✎
12:27
|
Или
ТипДвоичныеДанные = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "base64Binary"); ДвоичныеДанные = ФабрикаXDTO.Создать(ТипДвоичныеДанные,Хэш.ХешСумма); Возврат ДвоичныеДанные; |
|||
31
Serginio1
23.12.13
✎
12:28
|
Или СериализаторXDTO.ЗаписатьXDTO(Хэш.ХешСумма)
|
|||
32
Serginio1
23.12.13
✎
12:30
|
Какой тип требует сайт? Что именно не подходит?
|
|||
33
Avily
23.12.13
✎
12:32
|
а как сделать, что бы он в ANSI воспринимал?
|
|||
34
Avily
23.12.13
✎
12:33
|
UTF8
|
|||
35
Avily
23.12.13
✎
12:34
|
уточнила, не нужно мне ANSI, все в UTF8
|
|||
36
oleg_km
23.12.13
✎
12:34
|
(33) Ты все таки попробуй выяснить, в какой кодировке считают хеш на сайте.
ЗаписьТекста указываешь нужную кодировку, тогда нужно использовать функцию ДобавитьФайл |
|||
37
Avily
23.12.13
✎
12:36
|
я выяснила - UTF8
|
|||
38
oleg_km
23.12.13
✎
12:38
|
(35) Тогда странно. Но нужно не забывать, что хеш функция очень чувствительна к малейшим изменениям. Я например долго мучился с банк-клиентом, потому что они проверяли ЭЦП от строки с ВК+ПС в конце, а я их удалял. Может у тебя декорируется строка? Кинь сюда строку
|
|||
39
Avily
23.12.13
✎
12:41
|
94f6f771181eada99eecaa11118e5f261501b5a3311cec860dc0ffcb906b21c5cf5ffe752e93c87ea93b5a78d9088de9
|
|||
40
Avily
23.12.13
✎
12:42
|
сейчас пришлю что должно получиться
|
|||
41
Avily
23.12.13
✎
12:45
|
6191c7363bd5ab8808bc04677639f2b376174d23fc2559a17d36d40a15666bff
|
|||
42
Avily
23.12.13
✎
12:46
|
сейчас я получаю: 61 91 C7 36 3B D5 AB 88 08 BC 04 67 76 39 F2 B3 76 17 4D 23 FC 25 59 A1 7D 36 D4 0A 15 66 6B FF
|
|||
43
acsent
23.12.13
✎
12:48
|
пробелы убрать нужно?
|
|||
44
Avily
23.12.13
✎
12:49
|
ой блин точно, спасибо большое
|
|||
45
Avily
23.12.13
✎
12:49
|
смотрю на строчки и в упор не вижу что они одинаковые((
|
|||
46
Avily
23.12.13
✎
12:50
|
пора уже на новогодние праздники!!
|
|||
47
Avily
23.12.13
✎
12:50
|
Всех с наступающим!!!
|
|||
48
Serginio1
23.12.13
✎
12:56
|
(42)
ТипhexBinary = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "hexBinary"); ДвоичныеДанные = ФабрикаXDTO.Создать(ТипhexBinary,Хэш.ХешСумма); Сообщить(ДвоичныеДанные.ЛексическоеЗначение); |
|||
49
oleg_km
23.12.13
✎
13:09
|
Такой вариант должен работать:
Функция ПолучитьКлючШифрования(Шифр) Хэш=Новый ХешированиеДанных(ХешФункция.SHA256); Хэш.Добавить(Шифр); Возврат НРег(СтрЗаменить(Строка(Хэш.ХешСумма), " ", "")); КонецФункции Или как (48) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |