在Bash和Python中,视觉上相似的字符串的数量是不同的

2024-10-02 12:32:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图构造一个AWS签名v4 Auth头来调用STSGetCallerIdentityAPI,正如Bash中https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html的文档所示。你知道吗

现在,我在Python中使用了相同的过程,在仔细研究了Python和Bash中的脚本和输出之后,我发现Bash中为字符串计算的SHA256与Python中的不同。你知道吗

字符串在我的文本编辑器中看起来是一样的。你知道吗

但是由于SHA256不同,我假设这可能是字符串编码的问题。你知道吗

Python脚本使用UTF8,即使我尝试过在Bash脚本中执行printf "%s" "${string}" | iconv -t utf-8 | openssl dgst -sha256,哈希值仍然不同。你知道吗

如何在计算SHA256和之前将bash字符串/变量转换为UTF8。你知道吗


Tags: 字符串https脚本combashauthawsdocs
1条回答
网友
1楼 · 发布于 2024-10-02 12:32:40

看看如何在Python中计算它可能会有所帮助。从我所看到的,它的输出看起来是一样的。你知道吗

$ python -c "import hashlib; \
print(hashlib.sha256('test'.encode('utf8')).digest().hex())"
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

$ printf "%s" test | openssl dgst -sha256
(stdin)= 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

相关问题 更多 >

    热门问题