정수 오버플로에 의존하지 않고 부호없는 정수에 의존하지 않는 간단한 해시 함수를 찾고 있습니다.부호없는 정수없이 좋은 해시 함수를 만들려면 어떻게해야합니까?
언리얼 엔진 청사진 (정의되지 않은 오버 플로우 비헤이비어로만 32 비트 정수로만 서명 됨) 및 64 비트 부호있는 정수를 사용하는 PHP5에서 해시 함수를 만들어야하는 문제가 있습니다.
그래서 '공통'단순 해시 함수를 사용할 때 부호없는 정수의 비트 오버플로 동작에 의존하기 때문에 두 플랫폼 모두에서 동일한 결과를 제공하지 않습니다.
정말 중요한 것은 유일한 '임의성'이 있다는 것입니다. 누구든지 이것을 성취 할 수있는 간단한 것을 알고 있습니까?
이것은 서버에 메시지를 보내는 매우 기본적인 서명 구문을 의미합니다. 최상위 보안이 될 필요는 없습니다 ... 단순한 게임의 높은 점수를 서버에 저장하기위한 것입니다. 아이디어는 (다른 '시작 번호'를 사용하여) 메시지에서 여러 개의 해시 - 정수를 생성하고 해시 서명을 만들기 위해 추가 할 것입니다. 사람들이 네트워크 메시지를 스니핑하면 위조 된 메시지를 쉽게 보낼 수 없다는 것을 서버에 보냅니다. 그들은 올바른 해시 서명을 메시지와 함께 제공해야합니다. 해시 함수가 사용되는 것을 알지 못하면 해지 할 수 없습니다. 그들이 게임을 리버스 엔지니어링하면 물론 '해킹'할 수는 있지만 그 방법을 알지 못합니다. 언리얼 엔진 청사진 시스템에서 기존 해시 함수에 액세스 할 수 없습니다.