본문 바로가기
IT라이프/Linux

8자리 유니크코드 만들기

by zairan 2013. 9. 30.

회사에서 일을 하다가 고유아이디를 만들어서 넣어야 할 일이 생겼다.

아래 방법으로 약 49억개(?)의 경우의 수가 만들어진다고 하는데... 뭐 유저가 그렇게 될일은

하늘이 두쪽이 나도 없을테이고...아래 방법으로 시작해보았다.


CRC32 를 이용할때는 binascii 을 임포트해서 사용한다.

LONG 형으로 바꿨다가 문자열로 다시 바꿔야 하는 작업이 필요하다.



import binascii

import struct



text = "고유아이디"

crc = binascii.crc32(text)


def crc2hex(crc):

        res=''

        for i in range(4):

            t=crc & 0xff

            crc >>= 8

            res='%02x%s' % (t, res)

        print res



print "CRC32(hex1):", crc2hex(crc)


print "CRC32(hex2):", "%08x" % struct.unpack("I", struct.pack("i", crc))


print "CRC32(hex3):", binascii.hexlify(struct.pack("!l", crc))


로 확인해볼수 있다.

반응형

'IT라이프 > Linux' 카테고리의 다른 글

리눅스 설정파일 로딩순서 (bash_)  (0) 2016.04.18
SVN  (0) 2015.03.04
install Homebrew  (0) 2014.03.20
M2Crypto 설치 on Mac OS X 10.8  (0) 2013.10.09
Django template 変数繰り返し  (0) 2013.09.30

댓글