今天我读了关于Rubies hexdigest方法的文档,例如
// cast input pointer:
__m64* input64 = (__m64*)input;
// convert and scale:
__m128 lo_f = _mm_mul_ps(_mm_cvtpi16_ps(input64[0]), _mm_set_ps1(1.f/2048.f));
__m128 hi_f = _mm_mul_ps(_mm_cvtpi16_ps(input64[1]), _mm_set_ps1(1.f/2048.f));
返回给定字符串的十六进制编码哈希值。这几乎等同于
Digest::SHA256.hexdigest('123') => "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"
。
突出显示的是我:这里几乎意味着什么?它有什么不同?
当然我上面的示例字符串会产生相同的结果:
Digest.hexencode(Digest::Class.new(*parameters).digest(string))
有人能指出结果可能不同的情况吗?我想了解是否"几乎"指出一个重要的区别,或者差异是否与我无关。
答案 0 :(得分:0)
如同Digest::Instance所述的模块hexdigest(string)
返回hexencode_str_new(value);
一样。在Digest模块中,hexencode(string)
也返回hexencode_str_new(value);
。因此,如果使用相同的实例类型,则没有区别。 "几乎"因为在文档示例中可以是Digest :: SHA512或其他。