我找到了一个用于Flutter的加密包,可以用它来加密和解密消息。我成功地进行了加密和解密,但是在像下面这个例子中,我无法在分离的设备上使用它。
这里有一个例子,我用一个静态字符串和一个随机数组成明文,这样可以改变生成的密钥。当我解密时,使用正则表达式匹配找到静态字符串。
目前我不知道如何输入我的加密密钥(fesesgesgneslg465esg6es4g),我正在寻找如何做到这一点。//---------按下时我生成一个随机密钥,然后进行加密---- var rng = new Random();
用户在第二个设备上输入了密钥(68e4sg68es4ges68g4)。
我找不到如何解密我的密钥(68e4sg68es4ges68g4)。
简而言之,我成功地自动加密和解密了输入,但无法手动将生成的密钥添加到解密函数中。
这里有一个例子,我用一个静态字符串和一个随机数组成明文,这样可以改变生成的密钥。当我解密时,使用正则表达式匹配找到静态字符串。
var number = new Random();
var random= number.nextInt(100);
final plainText = 'static_name$random';
final key = Key.fromLength(16);
final iv = IV.fromLength(8);
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plainText, iv: iv);
final decrypted = encrypter.decrypt(encrypted, iv: iv);
print(encrypted.base64);//my plaintext is encrypted fesesgesgneslg465esg6es4g
print(decrypted); //my random plaintext is decrypted static_name$rnd
//my regex match function
目前我不知道如何输入我的加密密钥(fesesgesgneslg465esg6es4g),我正在寻找如何做到这一点。//---------按下时我生成一个随机密钥,然后进行加密---- var rng = new Random();
var rnd= rng.nextInt(100); //choisir le nombre max de contenu de la catégorie
final plainText = 'static_name$rnd';
final key = Key.fromLength(16);
final iv = IV.fromLength(8);
final encrypter = Encrypter(AES(key));
final encrypted = encrypter.encrypt(plainText, iv: iv);
//output : 68e4sg68es4ges68g4
用户在第二个设备上输入了密钥(68e4sg68es4ges68g4)。
encrypted=68e4sg68es4ges68g4;
final key = Key.fromLength(16);
final iv = IV.fromLength(8);
final encrypter = Encrypter(AES(key));
final decrypted = encrypter.decrypt(encrypted, iv: iv);
print(decrypted);
我找不到如何解密我的密钥(68e4sg68es4ges68g4)。
简而言之,我成功地自动加密和解密了输入,但无法手动将生成的密钥添加到解密函数中。