Javascript 什么类型是散列值?我可以使用比较运算符吗?
我正在开发firefox扩展,我想知道:Javascript 什么类型是散列值?我可以使用比较运算符吗?,javascript,firefox,hash,firefox-addon,operators,Javascript,Firefox,Hash,Firefox Addon,Operators,我正在开发firefox扩展,我想知道: 从字符串中获取哈希值后,该值是什么数据类型 我可以对它们使用比较运算符吗 所以我想做的是比较两个散列值,看看其中一个是否高于另一个。就像比较5>=4。这可能吗?要像对待整数一样对待散列值?是最流行的散列算法之一。它从一个字符串中给出一个十六进制十进制数,可用于比较,具有合理的安全性。对于JavaScript,您可以尝试,但您可以在网络上轻松找到许多其他实现。在您应该使用的Firefox插件中。例如,如果要使用MD5算法对字符串进行散列,可以使用以下函数:
所以我想做的是比较两个散列值,看看其中一个是否高于另一个。就像比较
5>=4
。这可能吗?要像对待整数一样对待散列值?是最流行的散列算法之一。它从一个字符串中给出一个十六进制十进制数,可用于比较,具有合理的安全性。对于JavaScript,您可以尝试,但您可以在网络上轻松找到许多其他实现。在您应该使用的Firefox插件中。例如,如果要使用MD5算法对字符串进行散列,可以使用以下函数:
function toMD5(str)
{
// Convert string to an array of bytes
var array = Array.prototype.slice.call(str);
// Create MD5 hash
var hashEngine = Components.classes["@mozilla.org/security/hash;1"]
.createInstance(Components.interfaces.nsICryptoHash);
hashEngine.init(hashEngine.MD5);
hashEngine.update(array, array.length);
return hashEngine.finish(true);
}
alert(toMD5("test")); // Displays: 8dP/hEMpdzKGLfIdxOVyYg==
请注意,这将返回base64编码的哈希值。使用
finish(false)
获取原始(二进制)散列值。您使用的是什么编程语言?我正在为mozila firefox创建一个扩展,因此它是javascript,但它使用(如果没有弄错的话)用C++编写的类。您可以对散列值进行排序,但结果通常与对散列对象进行排序时得到的顺序不同。你为什么要排序散列值?我想我知道了,谢谢。我正在应用Chord协议,该协议需要将一个ip+端口放在一个圆圈上,并且我需要知道其他2个ip+端口节点之间是我的当前节点。因此,我散列ip+端口,并根据它们的值将它们放在圆圈周围…让我们假设hash1