究竟什么是"长度为20的原始二进制格式"?

The*_*can 2 php binary encoding numbers

在阅读Sha1-PHP Manpage时,这个问题出现了

它说:

如果可选的raw_output设置为TRUE,则sha1摘要将以原始二进制格式返回,长度为20,否则返回的值为40个字符的十六进制数.

对我来说,"二进制格式"是一系列逻辑真值或假值.通常用0和1表示.

如果您有20个并且将它们解释为数字,则您的数字范围为2 ^ 20.

对于40位十六进制数,这将是16 ^ 40,这比2 ^ 20大约1.4*10 ^ 42倍.

如果var_dump原始输出你只是乱码,如果你bin2hex它们,你最终得到如上所述的如此大的十六进制数.

所以我对问题主题的解释肯定是胡说八道.究竟什么是"长度为20的原始二进制格式"?

Aln*_*tak 5

在这种情况下,"原始二进制"表示原始字节.

SHA-1摘要是160位长,或20个字节.

许多系统使用ASCII表示格式,即40个十六进制字符,但有时您需要原始数据.

例如,DNSSEC在区域文件中存储签名或显示输出时使用ASCII十六进制dig,但"在线"则使用原始格式.