목표 C에서 고유 ID를 얻는 방법 내 세션에 대한 고유 ID를 생성하려고합니다. & 다음에 서버 호출이 발생할 때마다 ID를 생성합니다. 이 ID는 고유해야합니다.Objective C에서 고유 ID 생성
거대한 고유 ID (4FE9D00C-531E-45E8-B10E-11968ACC36E9)를 제공하는 CFUUID 클래스를 사용해 보았습니다. 더 작은 크기의 고유 ID가 필요합니다.
단서가 있습니까?
목표 C에서 고유 ID를 얻는 방법 내 세션에 대한 고유 ID를 생성하려고합니다. & 다음에 서버 호출이 발생할 때마다 ID를 생성합니다. 이 ID는 고유해야합니다.Objective C에서 고유 ID 생성
거대한 고유 ID (4FE9D00C-531E-45E8-B10E-11968ACC36E9)를 제공하는 CFUUID 클래스를 사용해 보았습니다. 더 작은 크기의 고유 ID가 필요합니다.
단서가 있습니까?
guid (shear 조합 별)는 고유 한 ID를 생성합니다. 원하는 문자가 적은 경우 한 가지 옵션은 guid를 base64 인코딩하는 것입니다.
540c2d5f-a9ab-4414-bd36-9999f5388773
이되다 : 즉, 문자 대신 16 당 64 개의 가능성 (0-9, AF)
이 가능
Xy0MVKupFES9NpmZ9TiHcw
예를 들어, (비록 C 번호) http://www.singular.co.nz/blog/archive/2007/12/20/shortguid-a-shorter-and-url-friendly-guid-in-c-sharp.aspx
여기에 목표 -c 인 코드/디코드 (look @ Mike Ho post)의 SO 게시물이 있습니다.
이 내 질문도 있었고, 나는 대답을 좋아하지만, 나는 코드가 다 여기 수 있도록하고자, 나는이 오래 알아,하지만 어쩌면 도움이 될 수있는 사람 :
// DataWithLength is a byte size of UUID. So 32 bytes = 256 bits string
- (NSString*)generateSecureUUID {
NSMutableData *data = [NSMutableData dataWithLength:32];
int result = SecRandomCopyBytes(NULL, 32, data.mutableBytes);
NSAssert(result == 0, @"Error generating random bytes: %d", errno);
NSString *base64EncodedData = [data base64EncodedStringWithOptions:0];
return base64EncodedData;
}
당신은 다음
1
CFUUIDRef udidCFUUIDRef = CFUUIDCreate(NULL);
NSString *UUIDString_token_name = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, udidCFUUIDRef));
2
중 하나를 시도 할 수 있습니다
왜 더 짧아야합니까? 그것이 독특하다는 것을 확실히하기 위해 그것은 꽤 길 필요가 있습니다. –
이 문자열을 거대한 것으로 만드는 요청 ID로 세션 ID를 추가해야합니다. 추적 목적으로이 문자열을 서버에 로깅합니다. – Abhinav
더 짧아지기를 원하십니까? 아니면 고유해야 할 필요가 있습니까? –