从HEX哈希生成浮动范围

时间:2018-04-10 17:53:51

标签: javascript node.js cryptography

如何从给定的长HEX哈希中生成(在JavaScript或Node.JS中)浮点范围为0.00000000 - 100.00000000?例如SHA-256?

我对使用@Test annotation and method库的解决方案持开放态度,因为我使用它来生成给定的哈希值:)

1 个答案:

答案 0 :(得分:2)

如果您不关心精度损失,并且您的十六进制字符串具有固定长度(与SHA-256一样),您可以简单地从一个值空间映射到另一个值空间:

from matplotlib import dates        
import datetime 

## arbitrary start date... we're dealing with milliseconds here.. so only showing time on the graph.
base_datetime = datetime.datetime(2018,1,1)
csvDateTime = map(lambda x: base_datetime + datetime.timedelta(seconds=x), csvTime)
csvMatTime = map(lambda x: dates.date2num(x), csvDateTime)

请注意,精度损失足以使SHA-256的大部分冗余:

function hexStrToFraction(hexStr) {
    // Expresses a hexadecimal string of N characters as a fraction
    // of one above its maximum possible value (16^N).
    // Returns a number between 0 and 1.
    return parseInt(hexStr, 16) / Math.pow(16, hexStr.length);
}

function sha256ToPercent(sha256) {
    return 100 * hexStrToFraction(sha256);
}