2013-07-31 3 views
0

일부 정보를 기반으로 고유 한 식별자를 생성해야합니다. 여러 개의 클라이언트와 하나의 서버가 있습니다. 각 클라이언트는 처음 등록 할 때 서버에서 웹 서비스를 호출합니다. 각 클라이언트는 고유 한 것으로 간주되는 시스템 이름, 로그인 한 사용자 이름, 등록 날짜, MAC 주소 (가능) 등을 보냅니다.시스템 식별을위한 고유 한 키 - 암호 생성

이 정보를 바탕으로 특정 사용자에 대한 고유 식별자를 생성하려고합니다. . 내 서버는 PHP로 작성되었습니다. 몇 가지 고유 한 키를 생성 할 수있는 해시 메소드가 있지만 표준은 무엇이며 일반적으로 사용되고있는 것은 무엇입니까?

도움 주셔서 감사합니다.

답변

0

효과적인 접근 방법은 클라이언트의 연결 세부 정보에 소금 (서버에만 알려진 몇 문자)을 추가하는 것입니다. 해당 데이터를 hash 가져 가십시오. 아래 예에서 소금은 mysalt입니다.

<?php 
echo hash('ripemd160', 'mysalt' . clientHostname . clientUsername . clientRegistrationDate); 
?> 

이 접근법은 해시가 제 3 자에 의해 쉽게 추측/리버스 엔지니어링 될 수 없음을 의미합니다.

+0

해시를 사용하는 방법을 알고 특정 표준을 요구했다고 구체적으로 말했기 때문에 다운 투표. –

+0

해시 함수의 관용적 (즉, 일반적으로 사용되는 표준) 사용이라고 생각합니다. OP가 물었던 것에 따라. – Richard

0

고유 식별에 대한 하나의 표준은 UUID입니다. 당신이 제공 할 수있는 데이터와 그것이 얼마나 모호 할 지에 따라 5 가지 버전을 선택할 수 있습니다.

PECL 확장 프로그램을 설치할 수 있다면 매우 좋은 방법이 있습니다 : http://pecl.php.net/package/uuid. PHP UUID를 검색하지 않으면 순수 PHP 구현을 찾을 수 있습니다.