// import 'dart:convert'; // // import 'package:encrypt/encrypt.dart'; // import 'package:crypto/crypto.dart'; // // class Encryption { // static final Encryption instance = Encryption._(); // // late IV _iv; // late Encrypter _encrypter; // // Encryption._() { // const mykey = 'PeShVmYp'; // const myiv = 'j70IbWYn'; // var keyUtf8 = utf8.encode(mykey); // var ivUtf8 = utf8.encode(myiv); // var key = sha256.convert(keyUtf8).toString().substring(0, 32); // var iv = sha256.convert(ivUtf8).toString().substring(0, 16); // _iv = IV.fromUtf8(iv); // // _encrypter = Encrypter(AES(Key.fromUtf8(key), mode: AESMode.cbc)); // } // // String encrypt(String value) { // return _encrypter.encrypt(value, iv: _iv).base64; // } // // String decrypt(String base64value) { // var encrypted = Encrypted.fromBase64(base64value); // return _encrypter.decrypt(encrypted, iv: _iv); // } // // // // // void passEncrypt(String text, String pass) async { // // var salt = randomUint8List(8); // // var keyndIV = deriveKeyAndIV(pass, salt); // // var key = encrypt.Key(keyndIV.item1); // // var iv = encrypt.IV(keyndIV.item2); // // var encrypter = encrypt.Encrypter(encrypt.AES(key, mode: encrypt.AESMode.cbc, padding: "PKCS7")); // // var encrypted = encrypter.encrypt(text, iv: iv); // // Uint8List encryptedBytesWithSalt = Uint8List.fromList(createUint8ListFromString("Salted__") + salt + encrypted.bytes); // // var resulttt = base64.encode(encryptedBytesWithSalt); // // print("Enc : " + resulttt); // // // // decryptAESCryptoJS(resulttt, pass); // // } // // // // Uint8List randomUint8List(int length) { // // assert(length > 0); // // var random = Random(); // // var ret = Uint8List(length); // // for (var i = 0; i < length; i++) { // // ret[i] = random.nextInt(256); // // } // // return ret; // // } // // // // void decryptAESCryptoJS(String encrypted, String passphrase) { // // try { // // Uint8List encryptedBytesWithSalt = base64.decode(encrypted); // // Uint8List encryptedBytes = encryptedBytesWithSalt.sublist(16, encryptedBytesWithSalt.length); // // var salt = encryptedBytesWithSalt.sublist(8, 16); // // var keyndIV = deriveKeyAndIV(passphrase, salt); // // var key = encrypt.Key(keyndIV.item1); // // var iv = encrypt.IV(keyndIV.item2); // // var encrypter = encrypt.Encrypter(encrypt.AES(key, mode: encrypt.AESMode.cbc, padding: "PKCS7")); // // var decrypted = encrypter.decrypt64(base64.encode(encryptedBytes), iv: iv); // // print("Dec : " + decrypted); // // // return decrypted; // // } catch (error) { // // throw error; // // } // // } // // // // Future enc(String input) async { // // var ekey = "PeShVmYpPeShVmYp"; // // var eIV = "j70IbWYnj70IbWYn"; // // // // var abc = Encryption.instance.encrypt(input); // // // // // // var inputByt = utf8.encode(input); // // // final encrypted = encrypter.encrypt(plainText); // // // final decrypted = encrypter.decrypt(encrypted); // // // // // // print(decrypted); // Lorem ipsum dolor sit amet, consectetur adipiscing elit // // // print(encrypted.base64); // R4PxiU3h8YoIRqVowBXm36ZcCeNeZ4s1OvVBTfFlZRdmohQqOpPQqD1YecJeZMAop/hZ4OxqgC1WtwvX/hP9mw== // // // /// // // // // var key = encrypt.Key.fromUtf8(ekey.substring(0, 8)); // // var iv = encrypt.IV.fromLength(8); // // var encrypter = Encrypter(AES(key)); // // var encrypted = encrypter.encrypt(input, iv: iv); // // var decrypted = encrypter.decrypt(encrypted, iv: iv); // // print("====== ORI =========="); // // print("e4PTDencHsiLJv0XcbT2I4tafb7dqJP9c72PEnhp1Uv6U2GZ/gODtA=="); // // print("====== ENC =========="); // // print(encrypted.base64); // // print("====== DEC =========="); // // print(decrypted); // // print("====== B64 =========="); // // String bs64 = base64.encode(utf8.encode(input)); // // print(bs64); // // // // // try { // // // var cipher = _cipher; // // // var secretBox = await cipher.encrypt( // // // iByt, // // // secretKey: SecretKeyData(eByt), // // // nonce: eIvByt, // // // ); // // // print(utf8.decode(secretBox.cipherText)); // // // } catch (error) { // // // print(error); // // // return; // // // } // // } // // ///Accepts encrypted data and decrypt it. Returns plain text // // String decryptWithAES(String key, Encrypted encryptedData) { // // var cipherKey = encrypt.Key.fromUtf8(key); // // var encryptService = Encrypter(AES(cipherKey, mode: AESMode.cbc,padding: null)); // // var initVector = IV.fromUtf8(key.substring(0, 16)); // // return encryptService.decrypt(encryptedData, iv: initVector); // // } // // // // ///Encrypts the given plainText using the key. Returns encrypted data // // Encrypted encryptWithAES(String key, String plainText) { // // var cipherKey = encrypt.Key.fromUtf8(key); // // var encryptService = Encrypter(AES(cipherKey, mode: AESMode.cbc,padding: null)); // // var initVector = IV.fromUtf8("j70IbWYn"); // // Encrypted encryptedData = encryptService.encrypt(plainText, iv: initVector); // // print(encryptedData.base64); // // return encryptedData; // // } // // // // Tuple2 deriveKeyAndIV(String passphrase, Uint8List salt) { // // var password = createUint8ListFromString(passphrase); // // Uint8List concatenatedHashes = Uint8List(0); // // Uint8List currentHash = Uint8List(0); // // bool enoughBytesForKey = false; // // Uint8List preHash = Uint8List(0); // // // // while (!enoughBytesForKey) { // // int preHashLength = currentHash.length + password.length + salt.length; // // if (currentHash.length > 0) // // preHash = Uint8List.fromList(currentHash + password + salt); // // else // // preHash = Uint8List.fromList(password + salt); // // // // currentHash = preHash; // // concatenatedHashes = Uint8List.fromList(concatenatedHashes + currentHash); // // if (concatenatedHashes.length >= 48) enoughBytesForKey = true; // // } // // // // var keyBtyes = concatenatedHashes.sublist(0, 32); // // var ivBtyes = concatenatedHashes.sublist(32, 48); // // return new Tuple2(keyBtyes, ivBtyes); // // } // // // // Uint8List createUint8ListFromString(String s) { // // var ret = new Uint8List(s.length); // // for (var i = 0; i < s.length; i++) { // // ret[i] = s.codeUnitAt(i); // // } // // return ret; // // } // // // // Uint8List genRandomWithNonZero(int seedLength) { // // var random = Random.secure(); // // const int randomMax = 245; // // Uint8List uint8list = Uint8List(seedLength); // // for (int i = 0; i < seedLength; i++) { // // uint8list[i] = random.nextInt(randomMax) + 1; // // } // // return uint8list; // // } // // // // // // // // void test(String text, String kk) { // // Uint8List key = Uint8List.fromList(utf8.encode(kk)); // // PaddedBlockCipher cipher = exp.PaddedBlockCipherImpl(exp.PKCS7Padding(), exp.ECBBlockCipher(exp.AESEngine())); // // cipher.init(true, PaddedBlockCipherParameters(KeyParameter(key), null)); // // var byte = Uint8List.fromList(utf8.encode(text)); // // var data = cipher.process(byte); // // print(data); // // } // // }