好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > 淺析Go 字符串指紋

淺析Go 字符串指紋

熱門(mén)標(biāo)簽:烏魯木齊人工電銷(xiāo)機(jī)器人系統(tǒng) 福州鐵通自動(dòng)外呼系統(tǒng) 智能電銷(xiāo)機(jī)器人營(yíng)銷(xiāo) 賺地圖標(biāo)注的錢(qián)犯法嗎 地圖標(biāo)注測(cè)試 濮陽(yáng)自動(dòng)外呼系統(tǒng)代理 廣東語(yǔ)音外呼系統(tǒng)供應(yīng)商 長(zhǎng)沙ai機(jī)器人電銷(xiāo) 澳門(mén)防封電銷(xiāo)卡

寫(xiě)項(xiàng)目時(shí),有時(shí)我們需要緩存, 緩存就會(huì)需要唯一的key. 常規(guī)是對(duì)字符串求md5指紋. 在golang里我們也可以使用, 目前可以計(jì)算一個(gè)字符串的crc32, md5, sha1的指紋.

md5 : 一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)bai生出一個(gè)128位(du16字節(jié))的散列值(hash value),用于確保信息傳輸完整一zhi致。MD5由美國(guó)密碼學(xué)家羅納德·李維斯特(Ronald Linn Rivest)設(shè)計(jì),于1992年公開(kāi),用以取代MD4算法。

sha1: SHA1是由NISTNSA設(shè)計(jì)為同DSA一起使用的,它對(duì)長(zhǎng)度小于264的輸入,產(chǎn)生長(zhǎng)度為160bit的散列值,因此抗窮舉(brute-force)性更好。SHA-1基于MD5,MD5又基于MD4。

crc32: 本身是“冗余校驗(yàn)碼”的意思,CRC32則表示會(huì)產(chǎn)生一個(gè)32bit(8位十六進(jìn)制數(shù))的校驗(yàn)值。由于CRC32產(chǎn)生校驗(yàn)值時(shí)源數(shù)據(jù)塊的每一個(gè)bit(位)都參與了計(jì)算,所以數(shù)據(jù)塊中即使只有一位發(fā)生了變化,也會(huì)得到不同的CRC32值。

golang 實(shí)現(xiàn)

md5

// md5值
func Md5Str(s string) string {
	hash := md5.Sum([]byte(s))
	return hex.EncodeToString(hash[:])
}

sha1

// 散列值
func Sha1Str(s string) string {
	r := sha1.Sum([]byte(s))
	return hex.EncodeToString(r[:])
}

crc32

// String hashes a string to a unique hashcode.
// https://github.com/hashicorp/terraform/blob/master/helper/hashcode/hashcode.go
// crc32 returns a uint32, but for our use we need
// and non negative integer. Here we cast to an integer
// and invert it if the result is negative.
func HashCode(s string) int {
	v := int(crc32.ChecksumIEEE([]byte(s)))
	if v >= 0 {
		return v
	}
	if -v >= 0 {
		return -v
	}
	// v == MinInt
	return 0
}

// Strings hashes a list of strings to a unique hashcode.
func HashCodes(strings []string) string {
	var buf bytes.Buffer

	for _, s := range strings {
		buf.WriteString(fmt.Sprintf("%s-", s))
	}

	return fmt.Sprintf("%d", HashCode(buf.String()))
}

使用

func main() {
	// 2713056744
	// 1f8689c0dd07ce42757ac01b1ea714f9
	// 9addcbc6fee9c06f43d7110b657f3c61ff707032
	txt := "https://github.com/hashicorp/terraform/blob/master/helper/hashcode/hashcode.go"
	fmt.Println(HashCode(txt))
	fmt.Println(Md5Str(txt))
	fmt.Println(Sha1Str(txt))
}

效率

得出效率: hash_code > md5 > sha1

const (
	Txt = "https://github.com/hashicorp/terraform/blob/master/helper/hashcode/hashcode.go"
)

// go test -test.bench=. -test.benchmem
func BenchmarkMd5Str(b *testing.B) {
	for i := 0; i  b.N; i++ {
		Md5Str(Txt)
	}
}
func BenchmarkHashCode(b *testing.B) {
	for i := 0; i  b.N; i++ {
		HashCode(Txt)
	}
}
func BenchmarkSha1Str(b *testing.B) {
	for i := 0; i  b.N; i++ {
		Sha1Str(Txt)
	}
}

// BenchmarkMd5Str-8    2148428        518 ns/op       144 B/op     3 allocs/op
// BenchmarkHashCode-8   8105571        160 ns/op       80 B/op     1 allocs/op
// BenchmarkSha1Str-8    1836854        700 ns/op       176 B/op     3 allocs/op

// 得出效率: hash_code > md5 > sha1

以上就是淺析Go 字符串指紋的詳細(xì)內(nèi)容,更多關(guān)于Go 字符串指紋的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Golang中的Unicode與字符串示例詳解
  • 讓Django的BooleanField支持字符串形式的輸入方式
  • go浮點(diǎn)數(shù)轉(zhuǎn)字符串保留小數(shù)點(diǎn)后N位的完美解決方法
  • Go 驗(yàn)證字符串中是否包含中文(推薦)
  • Golang中生成隨機(jī)字符串并復(fù)制到粘貼板的方法
  • 分享6個(gè)Go處理字符串的技巧小結(jié)
  • Go 高效截取字符串的一些思考
  • Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法
  • 簡(jiǎn)單談?wù)凣olang中的字符串與字節(jié)數(shù)組
  • Go語(yǔ)言中的字符串處理方法示例詳解
  • Golang字符串的拼接方法匯總
  • Golang 中整數(shù)轉(zhuǎn)字符串的方法

標(biāo)簽:廣西 阿克蘇 調(diào)研邀請(qǐng) 慶陽(yáng) 西雙版納 德州 貴陽(yáng) 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺析Go 字符串指紋》,本文關(guān)鍵詞  淺析,字符串,指紋,淺析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺析Go 字符串指紋》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于淺析Go 字符串指紋的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 日本一本二本三区免费| 俺去射| 搞逼小说| 欧美???sex性视频| 李丽莎顾欣怡欧洲杯24fa| 污污的一左一右摸下面| 天堂最新版www| 久久久久精品黄桃影视| 国产h视频免费观看| 亚洲一区综合在线播放| 五月丁香六月激情综合啪| 狠狠cao日日穞夜夜穞AV| 91p0rny九色最新地址绿| 97久碰碰人人爱免费超超爱| 日本19xxxxxxxxx69| 亚洲欧美自拍偷拍| 91成人人妻偷拍??熟女图片| 91九九| 午夜刺激黄瓜西瓜葡萄榴莲漫画 | 国产精品久久久久国产精品| 色噜噜视频影院| 男配只想做工具人| 久久久久久无码大片A片| 美女一级毛片 天天爽夜爽88视频精品| 午夜在线视频免费| 91茄子国产线观看免费| 日本三级欧美三级人妇英文| 国产农村妇女三级全黄观看时间表 | 亚洲二区在线视频| 色偷偷网| 美女脱光图片| 果冻传媒播放观看免费| 口欲肉交直男gay| 欧美天天| 我把护士日出水了90分钟 免费| 长泽雅美2007| 欧美最新的精品videoss| 扒开女人内裤猛进猛出流出白液| 国产欧美日韩精久一品AV| 国产精品毛片在线完整版sa| 琉璃神社hacg|