# README
axutils
axutils
- это библиотека Go, предоставляющая различные утилиты для работы с каналами, коллекциями, криптографией и другими часто используемыми структурами данных. Эта библиотека разработана для упрощения работы с асинхронными операциями, обработкой данных и безопасностью в Go-приложениях.
Установка
Для установки библиотеки используйте команду:
go get github.com/axgrid/axutils
Пакет crypto
в axutils
предоставляет удобные инструменты для выполнения криптографических операций.
AES шифрование
AES
структура предоставляет методы для шифрования и дешифрования данных с использованием алгоритма AES в режиме GCM (Galois/Counter Mode).
Основные возможности:
- Шифрование данных с использованием AES-GCM
- Дешифрование данных, зашифрованных AES-GCM
- Автоматическая генерация случайного nonce для каждой операции шифрования
Пример использования:
secretKey := []byte("a very secret key") // 16 bytes for AES-128, 32 bytes for AES-256
aesInstance := crypto.NewAES(secretKey)
data := []byte("sensitive data")
// Шифрование
encryptedData, err := aesInstance.Encrypt(data)
if err != nil {
log.Fatal(err)
}
// Дешифрование
decryptedData, err := aesInstance.Decrypt(encryptedData)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Decrypted data: %s\n", string(decryptedData))
MD5 хеширование
Пакет crypto
также предоставляет функции для вычисления MD5 хеша.
Основные функции:
GetMD5Hash
: Возвращает MD5 хеш в виде строки шестнадцатеричных символовGetMD5HashBytes
: Возвращает MD5 хеш в виде среза байтов
Пример использования:
text := "Hello, world!"
// Получение MD5 хеша в виде строки
md5Hash := crypto.GetMD5Hash(text)
fmt.Printf("MD5 hash: %s\n", md5Hash)
// Получение MD5 хеша в виде байтов
md5HashBytes := crypto.GetMD5HashBytes(text)
fmt.Printf("MD5 hash bytes: %v\n", md5HashBytes)
Примечание: MD5 считается криптографически слабым и не рекомендуется для использования в целях безопасности. Рассмотрите возможность использования более стойких алгоритмов хеширования, таких как SHA-256, для критически важных приложений.
Заключение
Библиотека axutils
предоставляет широкий набор инструментов для эффективной работы с данными, асинхронными операциями и криптографией в Go. Использование этих утилит может значительно упростить разработку и повысить производительность и безопасность ваших приложений.
Для получения дополнительной информации о других утилитах библиотеки, пожалуйста, обратитесь к документации кода или примерам использования.