2014-03-25 57 views

回答

1

对密码散列函数使用非常宽松的"properties"解释,如果只有散列值,将无法确定使用什么样的散列函数来生成散列函数。

对于密码和MAC,甚至还有一个特殊的“indistinguishability”属性,可以用相同的方式对其进行松散地解释。更严格地说,它表示,给定两个输入值,一个密码和一个输出值,您不能识别输出是对应于第一个输入还是对应于第二个输入。

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

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

如果测试失败,您会知道被测系统使用的bcrypt实现中断或被测系统根本不使用bcrypt(使用其他散列函数而不是bcrypt )。

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

相关问题