hmac包實(shí)現(xiàn)了U.S.Federal Infomation Processing Standards Publication 198規(guī)定的HMAC(加密哈希信息認(rèn)證碼)。
為烏恰等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及烏恰網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、做網(wǎng)站、烏恰網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
HMAC是使用key標(biāo)記信息的加密hash。接收者使用相同的key逆運(yùn)算來(lái)認(rèn)證hash。
出于安全目的,接收者應(yīng)使用Equal函數(shù)比較認(rèn)證碼:
這個(gè)包一共提供了兩個(gè)對(duì)外公開(kāi)的函數(shù):
func Equal(mac1, mac2 []byte) bool
比較兩個(gè)MAC是否相同,而不會(huì)泄露對(duì)比時(shí)間信息。(以規(guī)避時(shí)間側(cè)信道攻擊;指通過(guò)計(jì)算比較時(shí)花費(fèi)的時(shí)間的長(zhǎng)短來(lái)獲取密碼的信息,用于密碼破解)
func New(h func() hash.Hash, key []byte) hash.Hash
New函數(shù)返回一個(gè)采用hash.Hash作為底層hash接口、key作為密鑰的HMAC算法的hash接口。
由于go語(yǔ)言是一個(gè)強(qiáng)類型的語(yǔ)言,因此hashmap也是有類型的,具體體現(xiàn)在key和value都必須指定類型,比如聲明一個(gè)key為string,value也是string的map,
需要這樣做
大部分類型都能做key,某些類型是不能的,共同的特點(diǎn)是: 不能使用== 來(lái)比較,包括: slice, map, function
在迭代的過(guò)程中是可以對(duì)map進(jìn)行刪除和更新操作的,規(guī)則如下:
golang的map是hash結(jié)構(gòu)的,意味著平均訪問(wèn)時(shí)間是O(1)的。同傳統(tǒng)的hashmap一樣,由一個(gè)個(gè)bucket組成:
那我們?cè)趺丛L問(wèn)到對(duì)應(yīng)的bucket呢,我們需要得到對(duì)應(yīng)key的hash值
各個(gè)參數(shù)的意思:
目前采用的是這一行:
| 6.50 | 20.90 | 10.79 | 4.25 | 6.50 |
1、屬性不同
Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開(kāi)發(fā)的一種靜態(tài)強(qiáng)類型、編譯型語(yǔ)言。功能:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。
KEGG 是了解高級(jí)功能和生物系統(tǒng)(如細(xì)胞、 生物和生態(tài)系統(tǒng)),從分子水平信息,尤其是大型分子數(shù)據(jù)集生成的基因組測(cè)序和其他高通量實(shí)驗(yàn)技術(shù)的實(shí)用程序數(shù)據(jù)庫(kù)資源,是國(guó)際最常用的生物信息數(shù)據(jù)庫(kù)之一,以“理解生物系統(tǒng)的高級(jí)功能和實(shí)用程序資源庫(kù)”著稱。
2、性質(zhì)不同
go是計(jì)算機(jī)編程語(yǔ)言。
KEGG基因組破譯方面的數(shù)據(jù)庫(kù)。
擴(kuò)展資料:
Go的語(yǔ)法接近C語(yǔ)言,但對(duì)于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語(yǔ)言包括Occam和Limbo。
但它也具有Pi運(yùn)算的特征,比如通道傳輸。在1.8版本中開(kāi)放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動(dòng)態(tài)加載部分函數(shù)。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語(yǔ)言級(jí)支持。Go 2.0版本將支持泛型,對(duì)于斷言的存在,則持負(fù)面態(tài)度,同時(shí)也為自己不提供類型繼承來(lái)辯護(hù)。
不同于Java,Go內(nèi)嵌了關(guān)聯(lián)數(shù)組(也稱為哈希表(Hashes)或字典(Dictionaries)),就像字符串類型一樣。
KEGG是一個(gè)整合了基因組、化學(xué)和系統(tǒng)功能信息的數(shù)據(jù)庫(kù)。把從已經(jīng)完整測(cè)序的基因組中得到的基因目錄與更高級(jí)別的細(xì)胞、物種和生態(tài)系統(tǒng)水平的系統(tǒng)功能關(guān)聯(lián)起來(lái)是KEGG數(shù)據(jù)庫(kù)的特色之一。
人工創(chuàng)建了一個(gè)知識(shí)庫(kù),這個(gè)知識(shí)庫(kù)是基于使用一種可計(jì)算的形式捕捉和組織實(shí)驗(yàn)得到的知識(shí)而形成的系統(tǒng)功能知識(shí)庫(kù)。它是一個(gè)生物系統(tǒng)的計(jì)算機(jī)模擬。
與其他數(shù)據(jù)庫(kù)相比,KEGG 的一個(gè)顯著特點(diǎn)就是具有強(qiáng)大的圖形功能,它利用圖形而不是繁縟的文字來(lái)介紹眾多的代謝途徑以及各途徑之間的關(guān)系,這樣可以使研究者能夠?qū)ζ渌芯康拇x途徑有一個(gè)直觀全面的了解。
參考資料來(lái)源:百度百科-go
參考資料來(lái)源:百度百科-KEGG
單向散列函數(shù)(one-wayfunction)有一個(gè)輸入和一個(gè)輸出,其中輸入稱為消息(message),輸出稱為散列值 (hashvalue)。單向散列函數(shù)可以根據(jù)消息的內(nèi)容計(jì)算出散列值,而散列值就可以被用來(lái)檢查消息的完整性。
這里的消息不一定是人類能夠讀懂的文字,也可以是圖像文件或者聲音文件。單向散列函數(shù)不需要知道消息實(shí)
際代表的含義。無(wú)論任何消息,單向散列函數(shù)都會(huì)將它作為單純的比特序列來(lái)處理,即根據(jù)比特序列計(jì)算出散
列值。
散列值的長(zhǎng)度和消息的長(zhǎng)度無(wú)關(guān)。無(wú)論消息是1比特,還是100MB,甚至是IOOGB,單向散列函數(shù)都會(huì)計(jì)算出固 定長(zhǎng)度的散列值。以SHA-I單向散列函數(shù)為例,它所計(jì)算出的散列值的長(zhǎng)度永遠(yuǎn)是160比特(20字節(jié))。
單向散列函數(shù)的相關(guān)術(shù)語(yǔ)有很多變體,不同參考資料中所使用的術(shù)語(yǔ)也不同,下面我們就介紹其中的兒個(gè)。 單向散列函數(shù)也稱為 消息摘要函數(shù)(message digest function) 、 哈希函數(shù) 或者 雜湊函數(shù) 。 輸入單向散列函數(shù)的消息也稱為 原像 (pre-image) 。
單向散列函數(shù)輸出的散列值也稱為 消息摘要 (message digest)或者 指紋 (fingerprint)。 完整性 也稱為一致性。
MD4是由Rivest于1990年設(shè)計(jì)的單向散列函數(shù),能夠產(chǎn)生128比特的散列值(RFC1186,修訂版RFC1320)。不 過(guò),隨著Dobbertin提出尋找MD4散列碰撞的方法,因此現(xiàn)在它已經(jīng)不安全了。
MD5是由Rwest于1991年設(shè)計(jì)的單項(xiàng)散列函數(shù),能夠產(chǎn)生128比特的散列值(RFC1321)。
MD5的強(qiáng)抗碰撞性已經(jīng)被攻破,也就是說(shuō),現(xiàn)在已經(jīng)能夠產(chǎn)生具備相同散列值的兩條不同的消息,因此它也已
經(jīng)不安全了。
MD4和MD5中的MD是消息摘要(Message Digest)的縮寫(xiě)。
SHA-1是由NIST(NationalInstituteOfStandardsandTechnology,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所)設(shè)計(jì)的一種能夠產(chǎn)生 160比特的散列值的單向散列函數(shù)。1993年被作為美國(guó)聯(lián)邦信息處理標(biāo)準(zhǔn)規(guī)格(FIPS PUB 180)發(fā)布的是 SHA,1995年發(fā)布的修訂版FIPS PUB 180-1稱為SHA-1。
SHA-1的消息長(zhǎng)度存在上限,但這個(gè)值接近于2^64比特,是個(gè)非常巨大的數(shù)值,因此在實(shí)際應(yīng)用中沒(méi)有問(wèn)題。
SHA-256、SHA-384和SHA-512都是由NIST設(shè)計(jì)的單向散列函數(shù),它們的散列值長(zhǎng)度分別為256比特、384比特和
512比特。這些單向散列函數(shù)合起來(lái)統(tǒng)稱SHA-2,它們的消息長(zhǎng)度也存在上限(SHA-256的上限接近于 2^64 比特,
SHA-384 和 SHA-512的上限接近于 2^128 比特)。這些單向散列函數(shù)是于2002年和 SHA-1 一起作為 FIPS PUB 180-2 發(fā)布的 SHA-1 的強(qiáng)抗碰撞性已于2005年被攻破, 也就是說(shuō),現(xiàn)在已經(jīng)能夠產(chǎn)生具備相同散列值的兩條不同的消 息。不過(guò),SHA-2還尚未被攻破。