1 개요[ | ]
- Short UUID, Base64 UUID (b64uuid)
- 단축 UUID, 베이스64 UUID, 짧은 UUID
- UUID의 Base64 축약형
- Base64기반 22자 UUID
- UUID 문자열 36자[1]를 손실없이 Base64 기반의 문자열 22자로 축약한 것이다.
- 공식 표준은 아니지만 사실상의 표준에 가깝다.
- 흔히 쿼리스트링 파라미터로 사용하기 위해
+
→-
,/
→_
각각 치환하여 적용한다. (URL 안전)[2]
2 UUID → b64uuid 변환과정[ | ]
- 자리구분기호
-
를 제거한다. - 바이너리로 변환한다. ( hex2bin() )
- Base64 인코딩한다. ( base64_encode() )
- 맨뒤의 패딩문자
==
를 제거한다. +
를-
로,/
를_
로 변환한다.
3 예시[ | ]
UUID | b64uuid |
---|---|
00000000-0000-0000-0000-000000000000 |
AAAAAAAAAAAAAAAAAAAAAA
|
ffffffff-ffff-ffff-ffff-ffffffffffff |
_____________________w [3]
|
4 같이 보기[ | ]
5 참고[ | ]
- http://stackoverflow.com/questions/772802/storing-uuid-as-base64-string
- http://pogopixels.com/blog/creating-a-short-unique-id-in-php/
- https://gist.github.com/MattKetmo/985b7dace430b58c3908
- http://stackoverflow.com/questions/12270852/convert-uuid-32-character-hex-string-into-a-youtube-style-short-id-and-back
- https://www.npmjs.com/package/uuid-base64
- http://dustycloud.org/blog/base64-uuids/
- http://www.shortguid.com/#/guid/short
- https://pypi.python.org/pypi/slugid/1.0.0
- ↑ 16진수 문자열 32자 + 중간중간에 들어가는 "-" 4자를 포함하여 총 36자
- ↑ http://tools.ietf.org/html/rfc4648#page-8
- ↑ 특이하게 마지막 자리가
_
가 아니라w
이다.
Base64 한자리는 6비트를 표현하는데( 64 = 26 ) 128비트를 표현하려면 128 / 6 = 21.333... 자리가 필요하다.
자리수는 쪼갤 수 없으므로 올림하여 22자리를 사용하면 132비트( = 6비트 × 22자리 )를 표현가능하므로 4비트가 남는다.
즉, 132비트 중 128비트(21.333...자리)로 UUID 정보를 표현하고, 여분 4비트(0.666...자리)는 0000으로 고정되는 것.
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.