Форум программистов, компьютерный форум, киберфорум
bedvit
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

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

Запись от bedvit размещена 03.11.2020 в 11:13
Показов 5921 Комментарии 0
Метки com, vb

Реализация в СОМ. Реализация для 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
Метки com, vb
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru