기존에는 수 많은 디바이스들을 구별하기 위해서 IP나 MAC Address를 사용햇습니다.
하지만, 모바일 디바이스는 네트워크를 ON OFF만 해도 IP가 변경되고, 위치에 따라 수시로 바뀔 수도 있고, 여러 대의 스마트폰이 한 개의 WIFI를 통해 접속하거나 DHCP(내부 IP 자동할당)기능을 끄고 다른 기기에다 이전에 사용했던 내부 ip를 할당하게 되는등의 상황을 고려하면 ip는 절대 고유한 값을 가진다고 볼 수 없습니다. 또, Mac Address는 네트워크 카드의 고유 값이라고 하지만, 만약 wifi를 거치게 될 시에는 해당 디바이스의 Mac Address 가 아닌 wifi의 Mac Address로 교체됩니다.
UUID는 16 옥텟(128비트)의 수이며, 표준 형식에서 UUID는 32개의 16진수로 표현되며 총 36개 문자(32개 문자와 4개의 하이픈)로 된
8-4-4-4-12라는 5개의 그룹을 하이픈(-)으로 구분합니다.
ex) 6fee0f11-9c5e-4340-845c-34e6b5e6dd3b 와 같이 나타난다.
----------안드로이드
private String GetDevicesUUID(Context mContext){
final TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());
String deviceId = deviceUuid.toString();
return deviceId;
}
----------아이폰
NSString *deviceId = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
----------JAVA에서 구현
import java.util.UUID;
public class Exam {
public static void main(String[] args) {
// 고유키 생성
System.out.println("고유키 : "+UUID.randomUUID().toString());
// 응용편 (비밀번호 초기화 6자리 비밀번호)
int start = (int)(Math.random()*27);
System.out.println("초기 비밀번호 : "+UUID.randomUUID().toString().replace("-", "").substring(start, start+6));
}
}
'IT관련' 카테고리의 다른 글
윈도우7, 10 설치시 설치 불가능한 파티션 날리기 (0) | 2018.07.27 |
---|---|
Win10 RS4(17134.48) x64x86 유틸통합 2018.05 Remiz (0) | 2018.07.27 |
Win 7 Ent x64 유틸통합 2018.05 Remiz (0) | 2018.07.27 |
프로그래머 필독 도서 / IT 개발자가 꼭읽어봐야할 책 (0) | 2018.07.17 |
StarUML Crack ?? [2.8 버젼만 해당됨.] (1) | 2018.07.05 |