페이스북의 기능(SSO 등)을 사용할 경우 앱의 키스토어에서 아래와 같은 방법을 통해 해시코드를 만들어서 사용자의 페이지에 등록하도록 요청한다.
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
이 방법은 리눅스/맥을 기반으로 작성된 예제인데, 만약 윈도우에서 안된다면 아래와 같이 써보자.
keytool -export -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl enc -a -e
위와 같은 복잡한 해시코드 대신에 간단한것을 원한다면, 자바의 String 클래스의 hashcode()를 이용해도 된다. 이 함수는 32bit 해시코드를 반환하는 것으로 원래 자바 내부적으로 사용할 목적으로 추가된 메소드이다.
마지막으로, 다른 값을 이용해 만든 해시코드가 같을 수 있다는 사실을 잊고, 유니크 키를 대신한다던가 하는 실수를 하지 말자. 예로 “Z@S.ME”와 “Z@RN.E”의 String.hashcode() 값은 아래와 같다.
======================== "Z@S.ME".hashcode(); "Z@RN.E".hashcode(); ======================== Z@S.ME = -1656719047 Z@RN.E = -1656719047
참조
- http://stackoverflow.com/questions/12626253/keytool-gives-wrong-android-apk-hashcode
- http://stackoverflow.com/questions/4388992/key-hash-for-android-facebook-app
- http://stackoverflow.com/questions/6120657/how-to-generate-a-unique-hash-code-for-string-input-in-android
- http://en.wikipedia.org/wiki/Java_hashCode()