gpt4 book ai didi

python - MD5 哈希 转到 Python

转载 作者:行者123 更新时间:2023-11-28 21:31:07 24 4
gpt4 key购买 nike

我有以下代码:

package main

import (
"crypto/md5"
"encoding/json"
"fmt"
)

type Payload struct {
HVIN []byte `json:"hvin"`
}

func main() {
vin := "1GBJC34R1VF063154"
md5 := md5.New()
md5Vin := md5.Sum([]byte(vin))
payload := &Payload{
HVIN: md5Vin,
}
b, _ := json.Marshal(payload)
fmt.Printf("%s", string(b))

}

如果我运行代码:https://play.golang.org/我得到以下输出:

{"hvin":"MUdCSkMzNFIxVkYwNjMxNTTUHYzZjwCyBOmACZjs+EJ+"}

如何在 Python 3 中复制此内容?

我尝试了以下操作:

import hashlib 

result = hashlib.md5(b'1GBJC34R1VF063154')
print(result.hexdigest())

获取以下输出与 Go 给出的输出不匹配:

a40f771ea430ae32dbc5e818387549d3

谢谢。

最佳答案

另一个答案中的注释指出,目标是匹配 Go 代码,即使 Go 代码不计算 VIN 的哈希值。

这里的 python3 代码与 Go 代码匹配。此代码对 VIN 和 MD5 初始值的串联进行 Base64 编码。

vin := "1GBJC34R1VF063154"
b0 = vin.encode('utf-8')
b1 = hashlib.md5(b'').digest()
s = base64.b64encode(b0 + b1).decode('ascii') // to match Go's encoding/json
print(f'{{"hvin":"{s}"}}')

Go 代码的作者可能想这样写:

vin := "1GBJC34R1VF063154"
md5Vin := md5.Sum([]byte(vin))
payload := &Payload{
HVIN: md5Vin[:],
}
b, _ := json.Marshal(payload)
fmt.Printf("%s", string(b))

关于python - MD5 哈希 转到 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58840574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com