crypto - Шифрування та хешування
Функції для шифрування, дешифрування та хешування даних.
AES шифрування використовує апаратне прискорення ESP32. CRC32 обчислюється за допомогою апаратної ROM-функції ESP32.
Приклад:
1-- AES-256 шифрування та дешифрування
2local key = "01234567890abcdef01234567890abcd" -- 32 байти = AES-256
3local encrypted = crypto.encrypt("Привіт, світ!", key)
4console.print("Зашифровано:", encrypted)
5
6local decrypted = crypto.decrypt(encrypted, key)
7console.print("Розшифровано:", decrypted)
8
9-- MD5 хеш
10local hash = crypto.md5("hello world")
11console.print("MD5:", hash)
12
13-- CRC32 контрольна сума
14local checksum = crypto.crc32("hello world")
15console.print("CRC32:", checksum)
- class crypto
- static encrypt(plaintext, key)
Шифрує рядок за допомогою AES-CBC з PKCS7-доповненням.
Ключ має бути рівно 16, 24 або 32 байти (AES-128, AES-192 або AES-256 відповідно).
Повертає hex-рядок, що містить випадковий вектор ініціалізації (IV) та зашифровані дані. Використовує апаратне прискорення AES ESP32.
- Parameters:
plaintext (
str) – текст для шифруванняkey (
str) – ключ шифрування (16, 24 або 32 байти)
- Returns:
hex_encoded зашифровані дані у форматі hex (IV + шифротекст)
- Return type:
str
Usage:
1local encrypted = crypto.encrypt("Привіт, світ!", "0123456789abcdef") 2console.print(encrypted) -- hex-рядок
- static decrypt(hex_encrypted, key)
Дешифрує hex-рядок, зашифрований функцією crypto.encrypt.
Ключ має бути тим самим, що використовувався для шифрування.
- Parameters:
hex_encrypted (
str) – зашифровані дані у форматі hex (результат crypto.encrypt)key (
str) – ключ дешифрування (16, 24 або 32 байти)
- Returns:
plaintext розшифрований текст
- Return type:
str
Usage:
1local encrypted = crypto.encrypt("Привіт, світ!", "0123456789abcdef") 2local decrypted = crypto.decrypt(encrypted, "0123456789abcdef") 3console.print(decrypted) -- "Привіт, світ!"
- static md5(data)
Обчислює MD5-хеш рядка.
Повертає hex-рядок довжиною 32 символи.
- Parameters:
data (
str) – дані для хешування- Returns:
hex_hash MD5-хеш у форматі hex (32 символи)
- Return type:
str
Usage:
1local hash = crypto.md5("Привіт, світ!") 2console.print(hash) -- "d41d8cd98f00b204e9800998ecf8427e" (приклад)
- static crc32(data)
Обчислює CRC32 контрольну суму рядка.
Використовує апаратну ROM-функцію ESP32.
- Parameters:
data (
str) – дані для обчислення контрольної суми- Returns:
crc32 контрольна сума CRC32
- Return type:
integer
Usage:
1local checksum = crypto.crc32("hello") 2console.print(checksum)