2016-10-26 1 views
-1

Conditions initiales:VB Impossible de récupérer la chaîne après 3DES

Private TheKey() As Byte = {1, 2, 3, 4, 5, 6, 7, 8} 
Private Vector() As Byte = {&H7C, &H22, &H2F, &HB2, &H92, &H7D, &H82, &H8A} 

Je passe ensuite pour chiffrer la chaîne: "asd" (sans les guillemets) à l'aide:

CryptoStream(ms, des.CreateEncryptor(TheKey, Vector), CryptoStreamMode.Write) 

entrée : asd
sortie: 82804AD2B295E9E3 ​​

Lorsque j'essaie de crypter la même chaîne avec la même touche/ve cteur sur http://tripledes.online-domain-tools.com/ comme indiqué ci-dessous (ne peut pas poster l'image due à la réputation):

online 3DES encryption

-je obtenir un résultat différent.

Mon but ultime est que cette sortie soit déchiffrée dans une application C. Mais deux chiffreurs 3DES donnant 2 résultats différents est un bouchon de spectacle .. Des pensées sur ce qui pourrait être à l'origine de cela?

Merci d'avance!

+1

Votre clé ci-dessus a une longueur de 8 octets. Je ne suis pas familier avec ce site Web, mais il semblerait que la clé que vous avez entrée là-bas était un entier (ish?) Long. Essayez d'utiliser une clé hexadécimale de 0102030405060708 sur ce site Web. – MarkL

+0

3DES ne doit pas être utilisé dans un nouveau travail, il n'est pas assez sécurisé, utilisez AES. – zaph

Répondre

0

Une bonne idée pour tester votre crypto contre un autre "oracle". Mais deux problèmes apparents avec votre utilisation de l'outil en ligne:

  • la clé doit être donnée en hexadécimal et non en texte (le code VB a un tableau d'octets). On peut supposer que 0102030405060708
  • 3DES est l'algorithme, mais le code VB utilise classique DES - il y a un TripleDESCryptoServiceProvider séparé pour 3DES

Cependant ce site me donne le même texte chiffré pour les DES et 3DES, donc il ne peut pas être un oracle fiable de toute façon? Essayez-en un autre, mais vous devrez peut-être utiliser une touche de texte brut (les deux premières que j'ai regardées n'offraient pas d'entrée hexadécimale)

+0

La clé peut être spécifiée en tant que texte, mais il s'avère que j'utilisais DES classique. Il y avait tellement de problèmes avec le vecteur initial, mais il a finalement fonctionné. Bravo et merci! –