Форум программистов, компьютерный форум, киберфорум
bedvit
Войти
Регистрация
Восстановить пароль
Рейтинг: 4.00. Голосов: 5.

Хеширование строки алгоритмами SHA (СОМ-реализация) + шифрование AES

Запись от bedvit размещена 03.11.2020 в 11:13
Обновил(-а) bedvit 06.04.2024 в 20:45

Реализация в СОМ. Реализация для XLL как функция COM.DLL
Часть библиотеки BedvitCOM
Использованы исходники Crypto++

Функция:
HashStringSHA(StringIn, VersionSHA)

Параметры функции:
1.StringIn - входящая строка
2.VersionSHA - версия алгоритма SHA

Поддержка следующих алгоритмов (+ новейшие SHA3) :
VersionSHA = 1, SHA1
VersionSHA = 2224, SHA2_224
VersionSHA = 2256, SHA2_256
VersionSHA = 2384, SHA2_384
VersionSHA = 2512, SHA2_512
VersionSHA = 3224, SHA3_224
VersionSHA = 3256, SHA3_256
VersionSHA = 3384, SHA3_384
VersionSHA = 3512, SHA3_512



Upd 14.06.2023
Начиная с версий COM.v3.5 и XLL.dll_v4.6 HashStringSHA() замена на аналогичную функцию с поддержкой UTF8 SHAstrUTF8()
Параметры функции:
1.StringIn - входящая строка
2.VersionSHA - версия алгоритма SHA
3.charLower - вывод результата в нижнем регистре (опционально, по умолчанию FALSE)

Пример использования
Visual Basic
1
2
3
4
Sub SHA_1()
Dim bCOM As New BedvitCOM.VBA
Debug.Print bCOM.SHAstrUTF8("String", 1) 'VersionSHA = 1,       SHA1
End Sub
+Добавлены новые с поддержкой UTF8 :
MDstrUTF8()
Параметры функции:
1.StringIn - входящая строка
2.versionMD- версия алгоритма MD
3.charLower - вывод результата в нижнем регистре (опционально, по умолчанию FALSE)

Поддержка следующих алгоритмов:
versionMD = 5,        MD5

AES128strUTF8() - симметричный алгоритм блочного шифрования
Параметры функции:
1.StringIn - входящая строка
2.key- ключ должен быть длинной 128, 256 bit (16, 32 Byte).
3.decrypt - decrypt/encrypt (true/false)
4.mode - Supporter mode : ECB, CBC, OFB, CFB, CBC-CTS, CTR
5.initializationVectorIV - an initialization vector (IV)
6.str_format_hex - вывод результата в формате Hex/Base64 (true/false)



Upd 21.01.2024
Начиная с версий BedvitCOM.dll_v4.0 и BedvitXLL.dll_v5.0
Функция AES128strUTF8() - переименована в AESstrUTF8(), т.к. 128 или 256 bit зависит от длины ключа, который введет пользователь 16 или 32 символа (EN - 1 байт и RU - 2 байта на символ в utf-8 соответственно)
AESstrUTF8() - изменились индексы алгоритмов шифрования, теперь у всех функций по шифрованию одинаковые индексы для алгоритмов AES
Размещено в Без категории
Показов 3736 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru