Java 一个单元如何测试非确定性加密功能?
我正在尝试将一个非确定性加密函数从javascript重新实现为java。然而,我注意到函数的输出每次都不同。但是,每当我解密输出时,它总是返回原始文本 例如: 单词:你好 加密:HX?631ffe50353ddda632a7e8fa11136d6ffaa584eb43b34c96005b6256f9dc 4121c7a8545d79887b900672e5870d702441?H 解密:你好 单词:你好 加密:HX?dfea4d1d30ebd5fc871c7c92d0230baf9e5298b19c3cfa0770fe2d2035f8 dad0116f2963b115c85c9d4725be505fca54?H 解密:你好 等等 为了进行单元测试,我可以想到的一种方法是在java中实现decrypt函数,然后对加密函数的输出进行解密。如果解密产生原始文本,则加密是正确的 例如:Java 一个单元如何测试非确定性加密功能?,java,javascript,unit-testing,encryption,Java,Javascript,Unit Testing,Encryption,我正在尝试将一个非确定性加密函数从javascript重新实现为java。然而,我注意到函数的输出每次都不同。但是,每当我解密输出时,它总是返回原始文本 例如: 单词:你好 加密:HX?631ffe50353ddda632a7e8fa11136d6ffaa584eb43b34c96005b6256f9dc 4121c7a8545d79887b900672e5870d702441?H 解密:你好 单词:你好 加密:HX?dfea4d1d30ebd5fc871c7c92d0230baf9e5298b
encrypted = Encrypt_text(word);
assertEquals(word,Decrypt_text(encrypted);
任何其他建议…?如果您对加密表单不感兴趣,那么断言就是完美的。最好使用原始的解密函数来验证加密函数,而不是使用新的解密例程。如果您同时编写这两个文件并使用它们相互测试,您将验证数据是否正确往返,但不会验证中间结果
您可以使用Mozilla Rhino运行Javascript解密例程:Oooooh一个Java的Javascript实现!听起来很有趣。我会查的+1.