UNPKG

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
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(); };