2010-12-10 2 views
4

J'essaie de réimplémenter une fonction de cryptage non déterministe de javascript à java. J'ai remarqué cependant que la sortie de la fonction est différente à chaque fois. Cependant, chaque fois que je décrypte la sortie, elle renvoie toujours le texte d'origine.Comment une unité peut-elle tester une fonction de cryptage non déterministe?

Par exemple:

mot: bonjour

crypté: HX 631ffe50353ddda632a7e8fa11136d6ffaa584eb43b34c96005b6256f9dc 4121c7a8545d79887b900672e5870d702441 H

déchiffré:? bonjour

mot: bonjour

crypté:? HX dfea4d1d30ebd5fc871c7c92d0230baf9e5298b19c3cfa0770fe2d2035f8 dad0116f2963b115c85c9d4725be505fca54 H

déchiffré: bonjour

et ainsi de suite ....

Pour tester l'unité ce, d'une manière que je peux penser de est également d'implémenter la fonction decrypt dans Java, puis décrypter la sortie de la fonction de cryptage. Si le décryptage donne le texte original, le cryptage est correct.

Par exemple:

encrypted = Encrypt_text(word); 
assertEquals(word,Decrypt_text(encrypted); 

Toute autre suggestion ...?

Répondre

2

Mieux vaut utiliser la fonction de décryptage d'origine pour valider votre fonction de chiffrement, plutôt qu'une nouvelle routine de décryptage. Si vous écrivez les deux et que vous les utilisez pour vous tester, vous aurez validé les rondes de données correctement, mais vous n'aurez pas validé le résultat intermédiaire.

Vous pouvez utiliser Rhino Mozilla pour exécuter le Javascript de routine décrypter: http://www.mozilla.org/rhino/

+0

Oooooh une implémentation javascript pour Java! Ça semble intéressant. Je vais le chercher. +1 – Jeune

1

Si le formulaire crypté ne vous intéresse pas, les assertions sont parfaites.

Questions connexes