2010-12-10 54 views
4

我想重新实现一个非确定性加密函数从JavaScript到Java。但是我注意到,函数的输出每次都是不同的。但是,每当我解密输出时,它总是返回原始文本。一个单元如何测试非确定性加密函数?

例如:

字:你好

加密:HX 631ffe50353ddda632a7e8fa11136d6ffaa584eb43b34c96005b6256f9dc 4121c7a8545d79887b900672e5870d702441ħ

解密:???你好

字:你好

加密:???HX dfea4d1d30ebd5fc871c7c92d0230baf9e5298b19c3cfa0770fe2d2035f8 dad0116f2963b115c85c9d4725be505fca54^h

解密:你好

等等....

单元测试这一点,这样我能想到的也是在java中实现解密函数,然后解密加密函数的输出。如果解密产生原始文本,那么加密是正确的。

例如:

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

任何其他建议...?

回答

2

更好地使用原始解密函数来验证您的加密函数,而不是使用新的解密例程。如果您同时编写并使用它们来测试对方,则您将验证数据是否正确往返,但是您不会验证中间结果。

你可以使用Mozilla Rhino的运行JavaScript的解密程序:http://www.mozilla.org/rhino/

+0

哇,一个JavaScript实现的Java!听起来不错。将查找它。 +1 – Jeune 2010-12-10 08:39:18

1

如果你对加密表单不感兴趣,那么断言就是完美的。

相关问题