检查Java单元测试中是否对密码进行了哈希处理

检查Java单元测试中是否对密码进行了哈希处理,java,unit-testing,automated-tests,bcrypt,string-hashing,Java,Unit Testing,Automated Tests,Bcrypt,String Hashing,从纯文本密码开始,应用BCrypt算法,我如何测试它是否经过哈希处理,以执行Java单元测试?使用对加密哈希函数的非常松散的解释,如果只有散列值,则无法确定使用哪种散列函数生成它 对于密码和MAC,甚至还有一个特殊的“”属性,可以用同样的方式松散地解释。更严格地说,它说,给定两个输入值,一个密码和一个输出值,您无法确定输出是对应于第一个输入还是第二个输入 检查特定加密函数是否正确实现,或特定加密函数使用的特定代码是否具有测试向量的方法之一是,其中每个项都完整描述所有输入数据和预期输出 将所有这些

从纯文本密码开始,应用BCrypt算法,我如何测试它是否经过哈希处理,以执行Java单元测试?

使用对加密哈希函数的非常松散的解释,如果只有散列值,则无法确定使用哪种散列函数生成它

对于密码和MAC,甚至还有一个特殊的“”属性,可以用同样的方式松散地解释。更严格地说,它说,给定两个输入值,一个密码和一个输出值,您无法确定输出是对应于第一个输入还是第二个输入

检查特定加密函数是否正确实现,或特定加密函数使用的特定代码是否具有测试向量的方法之一是,其中每个项都完整描述所有输入数据和预期输出

将所有这些应用于您的用例:使用可信的bcrypt实现以{input,bcrypt(input)}的形式准备一个项目向量。创建一个测试,将输入提交到系统中,并检查输出是否等于预期值

如果测试失败,您将知道被测系统使用的bcrypt实现已损坏,或者被测系统根本不使用bcrypt(使用其他哈希函数而不是bcrypt)


如果测试通过,您将知道被测系统至少对测试向量中的值使用了正确的bcrypt。

我想检查编码密码是否为bcrypt格式。