python 中uuid1,uuid3继阻,uuid4與uuid5的區(qū)別

UUID: 通用唯一標(biāo)識(shí)符 ( Universally Unique Identifier )的簡(jiǎn)寫耻涛, 對(duì)于所有的UUID它可以保證在空間和時(shí)間上的唯一性。它是通過MAC地址, 時(shí)間戳, 命名空間, 隨機(jī)數(shù), 偽隨機(jī)數(shù)來保證生成ID的唯一性, 有著固定的大小( 128 bit )瘟檩。
它的唯一性和一致性特點(diǎn)使得可以無需注冊(cè)過程就能夠產(chǎn)生一個(gè)新的UUID抹缕,它可以被用作多種用途,既可以用來短時(shí)間內(nèi)標(biāo)記一個(gè)對(duì)象, 也可以可靠的辨別網(wǎng)絡(luò)中的持久性對(duì)象墨辛。

python的uuid模塊提供UUID類和函數(shù)uuid1(), uuid3(), uuid4(), uuid5() 來生成1, 3, 4, 5各個(gè)版本的UUID ( 需要注意的是: python中沒有uuid2()這個(gè)函數(shù)). 用uuid1()或uuid4()可以獲得一個(gè)唯一的ID卓研,uuid1()包含了主機(jī)的網(wǎng)絡(luò)名稱,uuid4()不涉及網(wǎng)絡(luò)主機(jī)名睹簇,僅生成一個(gè)隨機(jī)UUID奏赘,因此從隱私保護(hù)角度uuid4()更加安全。對(duì)uuid模塊中最常用的幾個(gè)函數(shù)總結(jié)如下:

# -*- coding:utf-8 -*-
import uuid
 
print uuid.uuid1()
# 9fcb54d5-5cd1-11ee-9c40-e0d55e9f6355
 
print uuid.uuid3(uuid.NAMESPACE_DNS, 'love')
#  6deda52b-c8aa-3a78-907c-5826c79b7364
 
print uuid.uuid4()
# 894e75e9-d926-428c-abe0-cfd322e632fc
 
print uuid.uuid5(uuid.NAMESPACE_DNS, 'love')
# 1fc3f5f4-6a98-5913-82ef-406f1118aa65
下面說一下區(qū)別:

uuid1():這個(gè)是根據(jù)當(dāng)前的時(shí)間戳和MAC地址生成的太惠,最后的12個(gè)字符e0d55e9f6355對(duì)應(yīng)的就是MAC地址磨淌,因?yàn)槭荕AC地址,那么唯一性應(yīng)該不用說了凿渊。但是生成后暴露了MAC地址這就很不好了梁只。

uuid3():里面的namespace和具體的字符串都是我們指定的,然后呢···應(yīng)該是通過MD5生成的埃脏,這個(gè)我們也很少用到搪锣,莫名其妙的感覺。

uuid4():這是基于隨機(jī)數(shù)的uuid彩掐,既然是隨機(jī)就有可能真的遇到相同的构舟,但這就像中獎(jiǎng)似的,幾率超小堵幽,因?yàn)槭请S機(jī)而且使用還方便狗超,所以使用這個(gè)的還是比較多的弹澎。

uuid5():這個(gè)看起來和uuid3()貌似并沒有什么不同,寫法一樣抡谐,也是由用戶來指定namespace和字符串裁奇,不過這里用的散列并不是MD5,而是SHA1.

再來說一下簡(jiǎn)單的處理麦撵,UUID生成之后不是str類型需要轉(zhuǎn)為str:
uid = str(uuid.uuid4())
 
>>> str(uuid.uuid4())
'44a34eb5-aaa6-43ac-8f33-e1362e568256'
UUID中間的'-'是個(gè)比較奇怪的字符刽肠,那么應(yīng)該去掉它:hex
>>> uuid.uuid1().hex
'3b6fcaef5cd211eea2bee0d55e9f6355' //注意最后的12個(gè)字符還是 e0d55e9f6355(對(duì)應(yīng)你的Mac地址)

也可以參考官網(wǎng)介紹:https://docs.python.org/3/library/uuid.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市免胃,隨后出現(xiàn)的幾起案子音五,更是在濱河造成了極大的恐慌,老刑警劉巖羔沙,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躺涝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扼雏,警方通過查閱死者的電腦和手機(jī)坚嗜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诗充,“玉大人苍蔬,你說我怎么就攤上這事『眩” “怎么了碟绑?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)茎匠。 經(jīng)常有香客問我格仲,道長(zhǎng),這世上最難降的妖魔是什么诵冒? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任凯肋,我火速辦了婚禮,結(jié)果婚禮上造烁,老公的妹妹穿的比我還像新娘否过。我一直安慰自己,他們只是感情好惭蟋,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著药磺,像睡著了一般告组。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上癌佩,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天木缝,我揣著相機(jī)與錄音便锨,去河邊找鬼。 笑死我碟,一個(gè)胖子當(dāng)著我的面吹牛放案,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矫俺,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼吱殉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了厘托?” 一聲冷哼從身側(cè)響起友雳,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铅匹,沒想到半個(gè)月后押赊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡包斑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年流礁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罗丰。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡神帅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丸卷,到底是詐尸還是另有隱情枕稀,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布谜嫉,位于F島的核電站萎坷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沐兰。R本人自食惡果不足惜哆档,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望住闯。 院中可真熱鬧瓜浸,春花似錦、人聲如沸比原。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽量窘。三九已至雇寇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锨侯。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工嫩海, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囚痴。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓叁怪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親深滚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奕谭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容