Как расшифровать зашифрованное значение в дартс? - PullRequest
0 голосов
/ 03 июля 2018

Я тестирую криптографические функции хэширования для Dart. Я не могу найти информацию о DECRYPTION? Может кто-нибудь показать мне, как расшифровать зашифрованное значение?

И это пример;

import 'dart:convert';
import 'package:crypto/crypto.dart'; 

void main() async { 
  var key = utf8.encode('p@ssw0rd'); 
  var bytes = utf8.encode("Dart and Aqueduct makes my life easier. Thank you."); 


  // TODO: ENCRYPTION 
  var hmacSha256 = new Hmac(sha256, key); // HMAC-SHA256 
  var digest = hmacSha256.convert(bytes); 
 
  print(“————ENCRYPTION—————“); 
  print("HMAC digest as bytes: ${digest.bytes}"); 
  print("HMAC digest as hex string: $digest"); 
  print('\r\n'); 


  // TODO: DECRYPTION 
     ???????????? 
  print(“————DECRYPTION—————“); 
  print(?????????); 

}

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

PointyCastle (https://pub.dartlang.org/packages/pointycastle) рекомендовалось в прошлом, но, похоже, еще не обновлено для Dart 2.: (

0 голосов
/ 04 июля 2018

Ну, на самом деле поиск много не мог найти ничего лучше, чем это. шифрует 0.2.0 новый и имеет поддержку Dart 2. https://pub.dartlang.org/packages/encrypt#-installing-tab-

Мне нужно что-то, что позволяет мобильному приложению My Flutter и Aqueduct обмениваться защищенными данными. Лео Кавальканте отличный парень. Пока мы разговаривали вчера, он быстро отвечает. Так что это еще одна любовь Дарт. Потому что все люди поддерживают друг друга.

Поддерживает: AES (блочный шифр) Salsa20 (потоковый шифр) RSA (асимметричный) (рабочий)

Использовать этот пакет как библиотеку

  1. Зависит от этого Добавьте это в файл pubspec.yaml вашего пакета:

зависимости: зашифровать: "^ 0.2.0"

  1. Установите его Вы можете установить пакеты из командной строки: с пабом:

$ pub get

с флаттером:

$ флаттерные пакеты получают

Кроме того, ваш редактор может поддерживать пакеты get get или flutter. Проверьте документы для своего редактора, чтобы узнать больше.

  1. Импорт Теперь в вашем коде Dart вы можете использовать: импорт 'package: encrypt / encrypt.dart';
0 голосов
/ 03 июля 2018

HMAC - это код аутентификации сообщения. Это дайджест, используемый для проверки того, что сообщение не было подделано, подобно подписи. Он построен с использованием хеш-функции односторонняя , в данном случае SHA256. Это не шифрование, и его нельзя отменить, поэтому значение не может быть расшифровано.

Единственное, что вы можете сделать с HMAC, это, учитывая HMAC и соответствующий открытый текст, проверить происхождение простого текста и то, что он не был подделан.

Глядя на страницу GitHub для криптографической библиотеки Dart , похоже, что только поддерживает алгоритмы дайджеста. В списке нет алгоритмов шифрования, поэтому вам нужно будет использовать другую библиотеку, если вы хотите использовать двустороннее шифрование, которое фактически может быть дешифровано. Библиотека Cipher выглядит многообещающе в этом отношении.

...