Я пытаюсь выполнить шифрование в своем приложении Flutter, используя пакет pointy_castle
, который похож на библиотеку crypto.Cipher
в Java. Существует метод с именем doFinal()
, в Java вы можете назначить один параметр. Находясь в Dart, вы должны назначить четыре параметра. Так как же правильно заполнить необходимые параметры? Мне нужен пример того, как это сделать.
В пакете документов, doFinal(Uint8List inp, int inpOff, Uint8List out, int outOff) → int
Это код на Java:
...
byte[] encrypted;
encrypted = cipher.doFinal(padString(text).getBytes());
String finalData = bytesToHex(encrypted);
return finalData;
...
И в дротике:
...
Uint8List encrypted; // <- I have to make it of type Uint8List because _bytesToHex method requires looping through the list. However, it produces an error because of that: `A value of type 'int' can't be assigned to a variable of type 'Uint8List'.`
encrypted = cipher.doFinal(utf8.encode(_padString(data))); // <- This produces an error since doFinal() requires 4 params.
String finalData = _bytesToHex(encrypted);
return finalData;
...