Имя: Пароль:
1C
1C 7.7
v7: Шифрование алгоритмом SHA1
0 Sam1C
 
04.05.17
15:22
Всем доброго дня! Нашел способ шифровать SHA1 с помощью библиотеки capicom.dll. через объект "CAPICOM.HashedData", в нем один метод (Hash) и два св-ва (Algorithm - задает алгоритм шифрования и Value - возвращает результат). Но мне надо шифровать с помощью ключа. И что не могу найти как сделать это в 7.7
1 polosov
 
04.05.17
15:25
SHA1 вроде же для создания хешей
2 Sam1C
 
04.05.17
15:31
(1) вот функция на php:
https://php.ru/manual/function.hash-hmac.html
Вот такую функцию мне надо  сделать в 7.7
3 Sam1C
 
04.05.17
15:31
(1) т.е. с генерировать хеш-кода на основе ключа
4 polosov
 
04.05.17
15:36
(3) Тебе что-то типа этого надо
http://wiki.simplit.info/doku.php/solution/sdk/rom-hmac
5 Sam1C
 
04.05.17
15:42
(4) Написано поддерживает только 8-ку
6 mehfk
 
04.05.17
16:07
Обратись к Serginio1
7 Serginio1
 
07.05.17
19:22
8 Serginio1
 
07.05.17
19:30
Вот пример шифрования  HMAC

Функция ВычислитьHMAC(key,стр)
    врап=СоздатьОбъект("NetObjectToIDispatch45");
    врап.УстЭтоСемерка();
//    если только латиница
//encoding=Врап.ПолучитьТип("System.Text.Encoding").ASCII;
encoding=Врап.ПолучитьТип("System.Text.Encoding").UTF8;

keyByte = encoding.GetBytes(key);

hmacmd5 = Врап.СоздатьОбъект("System.Security.Cryptography.HMACMD5",keyByte);
hmacsha1 = Врап.СоздатьОбъект("System.Security.Cryptography.HMACSHA1",keyByte);

messageBytes = encoding.GetBytes(стр);
hashmessage = hmacmd5.ComputeHash(messageBytes);
hashmessage2 = hmacsha1.ComputeHash(messageBytes);
BitConverter=Врап.ПолучитьТип("System.BitConverter");
Strhashmessage=СтрЗаменить(BitConverter.ToString(hashmessage),"-","");
Strhashmessage2=СтрЗаменить(BitConverter.ToString(hashmessage2),"-","");

Сообщить(Strhashmessage);
Сообщить(Strhashmessage2);
    

КонецФункции// ВычислитьHMAC()
9 Serginio1
 
07.05.17
19:32
По образу и подобию
https://msdn.microsoft.com/ru-ru/library/system.security.cryptography.sha1(v=vs.110).aspx

В следующем примере вычисляется SHA1 хэш для data и сохраняет его в result. В этом примере предполагается наличие Предопределенная константа DATA_SIZE.

SHA1 sha = new SHA1CryptoServiceProvider();
// This is one implementation of the abstract class SHA1.
result = sha.ComputeHash(data);