react-native-aes-ecb
Version:
A pure JavaScript implementation of the AES block cipher algorithm with additional features for react-native.
25 lines (20 loc) • 779 B
JavaScript
const aesjs = require('aes-js');
import { Buffer } from 'buffer';
module.exports = function decryptor (keyString, input, s) {
const key = keyString.trim();
let data;
if (s) {
const _s = s.trim();
data = input.split(_s)[1].trim();
} else {
data = input.trim();
}
const keyBuffer = aesjs.utils.utf8.toBytes(key);
const escEcb = new aesjs.ModeOfOperation.ecb(keyBuffer);
const buf = Buffer.from(data, 'base64');
const decryptedBytes = escEcb.decrypt(buf);
const decryptedText = aesjs.utils.utf8.fromBytes(decryptedBytes);
const regex = /[\u{0001}-\u{0010}]/gu ;
const result = regex.test(decryptedText) ? decryptedText.replace(/[\u{0001}-\u{0010}]/gu, "") : decryptedText;
return result.trim();
};