Как конвертировать MD5 обратно в изображение? - PullRequest
0 голосов
/ 02 мая 2020

Я нашел этот пакет crypto, и он действительно удивителен тем, что он делает.

Теперь я понял, как конвертировать изображений в MD5 - это то, что я отправляю в базу данных.

Теперь моя проблема в том, что я получаю эти изображения обратно как MD5 и не могу показать их как Image.

У меня есть идея, в которой я должен использовать Image.memory, которая принимает Uint8List bytes.

Я также видел, что мое изображение MD5 имеет функцию .bytes (например, myMD5Image.bytes), который принимается Image.memory (например, Image.memory(myMD5Image.bytes))

, но выдает ошибку: Exception: Could not instantiate image codec.

Я хотел бы попросить предложения или возможные решения для этого. Заранее спасибо!

РЕДАКТИРОВАТЬ: Это часть моего кода, когда пользователь dr aws на холсте

  generateSignature() async {

    if (_controller.isNotEmpty) {
      var data = await _controller.toPngBytes();
      var signatureMD5 = md5.convert(data);
      print("BYTES : $data");
      print("MD5 : $signatureMD5");
      print("BACK TO BYTES : ${signatureMD5.bytes}");

      showDialog(
          context: context,
          child: Dialog(
            child: Column(
              children: <Widget>[
                //SHOWS IMAGE
                Image.memory(
                  data,
                  filterQuality: FilterQuality.high,
                ),
                //DOESNT SHOW IMAGE
                Image.memory(
                  signatureMD5.bytes,
                  filterQuality: FilterQuality.high,
                ),
              ],
            ),
          ));
    }
  }

1 Ответ

0 голосов
/ 02 мая 2020

MD5 - это функция хеширования, поэтому после ее применения к данным она необратима. Поэтому MD5 (или SHA-1, Whirlpool, et c.) Не подходит для вашего случая использования.

Типичное использование хэшей - хранение учетных данных пользователя в базе данных. Вместо того, чтобы иметь пароли в открытом виде, вы хотите сохранить его ha sh, чтобы при аутентификации пользователя платформа генерировала ha sh пароля, введенного пользователем, и сравнивала его с ha sh, сохраненным в база данных. Если он совпадает, то пароль правильный, но он остается хешированным в базе данных.

Вот некоторые алгоритмы шифрования, которые вы можете использовать вместо: https://blog.storagecraft.com/5-common-encryption-algorithms/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...