2009-11-06 4 views
2

출력에 작은 변화가있을 때 입력의 작은 변화가 발생하는 해시 함수가 있습니까? 예를 들면 다음과 같습니다.유사한 입력을 유사한 출력에 매핑하는 해시 함수?

hash("Foo") => 9e107d9d372bb6826bd81d3542a419d6 
hash("Foo!") => 9e107d9d372bb6826bd81d3542a419d7 <- note small difference 
+1

것은 * 정말 * 나쁜 해시 알고리즘이 될 것이라고 .... – skaffman

+0

암호화 해시의 경우 예, 이것이 좋지 않지만 다른 용도로 사용하고 싶습니다. –

+0

필자는 그러한 기능의 의도 된 목적이 무엇인지에 관해 더 자세히 설명해야한다고 생각합니다. 해당 속성을 사용하는 암호화 해시 함수가 없지만 다른 것을 찾고 있습니까? – Krystian

답변

0

간단한 해결책은 모든 바이트 모듈 N을 XOR하는 것입니다. 64 비트 해쉬의 경우 XOR ([0]^input [8]^input [16]) + 256 * (input [1]^input [9]^input [17]) 등등이됩니다. 그래서, "Foo"는 "Foo \ 0 \ 0 \ 0 \ 0 \ 0"및 "Foo!"로 해시합니다. 해시 "Foo! \ 0 \ 0 \ 0 \ 0".

4

해시 지점이 정확히 반대이므로 해시를 호출하지 않습니다. 그러나 출력의 작은 변화를 일으키는 입력의 작은 변화에 대한 명시된 목표에 따라 soundex 함수 또는 Ratcliff 알고리즘을 사용합니다.