AESUtils adalah library ringan untuk melakukan enkripsi data menggunakan algoritma AES-128 dalam mode CBC pada perangkat berbasis Arduino seperti ESP32 dan ESP8266.
Library ini menyediakan antarmuka sederhana untuk mengenkripsi data string menggunakan AES-128-CBC dengan padding dan IV acak. Cocok untuk pengamanan data pada aplikasi IoT.
- 🔒 Enkripsi AES-128 dengan mode CBC
- 🔁 Padding otomatis (PKCS#7 style)
- 🔐 IV (Initialization Vector) acak setiap kali enkripsi
- 📦 Output dalam format Base64 (mudah dikirim via HTTP/MQTT)
- ⚙️ Cocok untuk ESP32 & ESP8266
Library ini menggunakan pustaka berikut (biasanya sudah tersedia dalam core ESP32/ESP8266):
mbedtls/aes.h– Untuk operasi enkripsi AESbase64.h– Untuk encoding hasil enkripsiArduino.h– Header dasar platform Arduino
AESUtils/
├── AESUtils.h # Header class AESUtils
├── AESUtils.cpp # Implementasi metode enkripsi
├── basicaes.ino # Contoh penggunaan
└── library.properties # Metadata library Arduino
- Clone atau unduh repository ini.
- Tempatkan folder
AESUtilske dalam direktorilibraries/Arduino Anda. - Di sketch Arduino Anda, tambahkan:
#include <AESUtils.h>#include <AESUtils.h>
void setup() {
Serial.begin(115200);
byte key[16] = { /* 16-byte AES key */ };
byte iv[16];
String plaintext = "Sensitive data to encrypt";
String encrypted = AESUtils::encryptPayload(plaintext, key, iv);
Serial.println("Encrypted payload (Base64):");
Serial.println(encrypted);
}
void loop() {}- Data akan di-pad menggunakan PKCS-style padding agar genap terhadap blok AES (16 byte).
- IV acak sepanjang 16 byte akan dibuat.
- Data akan dienkripsi menggunakan AES-128-CBC (
mbedtls_aes_crypt_cbc()). - IV + hasil enkripsi akan digabung dan diencode ke Base64 agar mudah dikirim.
Telah diuji dan bekerja baik pada:
- ✅ ESP32
- ✅ ESP8266
MIT License — bebas digunakan untuk kebutuhan pribadi maupun komersial.
name=AESUtils
version=1.0.0
author=MisredIoT
maintainer=**
sentence=AES-128-CBC Encryption Library
paragraph=Provides simple interface for AES encryption with CBC mode
category=Data Processing
url=https://github.com/ArthZ01/AES-Lib
architectures=esp32,esp8266
- Author: MisredIoT
- Maintainer: