猿问

Python 与 Go 散列的差异

我有一个围棋程序


package main


import (

    "crypto/hmac"

    "crypto/sha1"

    "fmt"

)


func main() {

    val := []byte("nJ1m4Cc3")

    hasher := hmac.New(sha1.New, val)

    fmt.Printf("%x\n", hasher.Sum(nil))

    // f7c0aebfb7db2c15f1945a6b7b5286d173df894d

}

以及试图重现 Go 代码的 Python (2.7) 程序(使用crypto/hmac)


import hashlib

val =  u'nJ1m4Cc3'

hasher = hashlib.new("sha1", val)

print hasher.hexdigest()

# d67c1f445987c52bceb8d6475c30a8b0e9a3365d

使用hmac模块给了我一个不同的结果,但仍然与 Go 代码不同。


import hmac

val = 'nJ1m4Cc3'

h = hmac.new("sha1", val)

print h.hexdigest()

# d34435851209e463deeeb40cba7b75ef

为什么当它们在相同的输入上使用相同的散列时会打印不同的值?


侃侃尔雅
浏览 146回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答