gpt4 book ai didi

python - 将 Thrift 对象转换为 SHA1 摘要

转载 作者:太空宇宙 更新时间:2023-11-03 19:20:39 25 4
gpt4 key购买 nike

我是Python新手。我尝试使用 Thrift 协议(protocol)与服务器合作

struct AuthSalt {
1: required i64 client, /* random data */
2: required i64 server, /* data from previous answer */
}

struct AuthRequest {
1: required AuthSalt bootstrap,
2: required string who, /* login */
3: required string signature, /* SHA-1: bootstrap + password + who + bootstrap. */
}

exception NotAuthorisedException {
1: required string description
}

service Bookworm {
AuthResponse Authenticate( 1: required AuthRequest a, 2: required string locale )
throws ( 1: NotAuthorisedException e )
}

我需要使用以下算法创建 SHA1 摘要:bootstrap + 密码 + who + bootstrap。

为了创建 Bootstrap ,我使用这个:

dig = hashlib.sha1
bootstrap = AuthSalt(0, 0)
dig.update(bootstrap)
dig.update(password + who)
dig.update(bootstrap)

但是更新方法参数类型仅是字符串,我不明白如何将 Bootstrap 转换为字符串。

在 C++ 中,此代码如下所示:

SHA_CTX c;
::SHA1_Init(&c);
::SHA1_Update(&c, &bootstrap, sizeof(bootstrap));
::SHA1_Update(&c, password.c_str(), password.size());
::SHA1_Update(&c, who.c_str(), who.size());
::SHA1_Update(&c, &bootstrap, sizeof(bootstrap));
::SHA1_Final(digest, &c);

有人可以解释一下如何使用 python 做到这一点吗?

提前致谢!

最佳答案

我认为 str(bootstrap) 而不是 bootstrap 应该可以工作。

关于python - 将 Thrift 对象转换为 SHA1 摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846972/

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