Snakemake 文档中这个 SHA256 哈希的编码是什么?

问题描述 投票:0回答:1

我习惯于将 SHA256 哈希值打印为十六进制,但是这个哈希值是如何编码的呢?

u98a9cjsd98saud090923ßkpoasköf9ß32

这来自 Snakemake 文档,在此上下文中:

sha256 校验和可以按如下方式进行比较:

my_checksum = "u98a9cjsd98saud090923ßkpoasköf9ß32"

rule NAME:
    output:
        ensure("test.txt", sha256=my_checksum)
    shell:
        "somecommand {output}"

实际上根本没有编码,而这些只是哈希的字节吗? 不过,我希望它是一个

bytes
对象而不是字符串。

python sha256 snakemake
1个回答
0
投票

它可能已损坏,由根本不了解编码的人编码。该字符串显然应该是二进制的。 它不能是 utf-8,因为“ß”将成为一个两字节序列,不太可能在哈希中计算序列。

因此,尝试“latin1”,其中“ß”由“\xcd”字节表示 - 它是一种流行的字符映射编码,其中包含该字符,因此很有可能它会起作用。

I.i.使用

checksum = my_checksum.encode("latin1")
将该字符串转换为“bytss”对象。 报告了项目中的一个错误,该错误使用带有非 ASCII、非转义字符的文本字符串来表示字节。

© www.soinside.com 2019 - 2024. All rights reserved.