encryptString method
Implementation
String encryptString(String plaintext) {
List<int> data = utf8.encode(plaintext).toList();
while (data.length % 8 != 0) {
data = [...data, 0]; // Zero padding
}
List<int> encrypted = [];
for (int i = 0; i < data.length; i += 8) {
List<int> block = encipher([
(data[i] << 24) |
(data[i + 1] << 16) |
(data[i + 2] << 8) |
data[i + 3],
(data[i + 4] << 24) |
(data[i + 5] << 16) |
(data[i + 6] << 8) |
data[i + 7]
]);
encrypted.addAll([
(block[0] >> 24) & 0xFF,
(block[0] >> 16) & 0xFF,
(block[0] >> 8) & 0xFF,
block[0] & 0xFF,
(block[1] >> 24) & 0xFF,
(block[1] >> 16) & 0xFF,
(block[1] >> 8) & 0xFF,
block[1] & 0xFF
]);
}
return base64.encode(encrypted);
}