我正在開發Firefox擴展,我想知道:散列值是什麼類型,我可以使用比較運算符嗎?
- 後,我從一個字符串中獲得的哈希值,什麼樣的數據類型是值?
- 我可以使用比較運算符嗎?
所以我想要做的是比較兩個哈希值,看看是否是例如高於其他。就像比較5 >= 4
。這可能嗎?要像整數一樣處理散列值?
我正在開發Firefox擴展,我想知道:散列值是什麼類型,我可以使用比較運算符嗎?
所以我想要做的是比較兩個哈希值,看看是否是例如高於其他。就像比較5 >= 4
。這可能嗎?要像整數一樣處理散列值?
在Firefox附加組件中,您應該使用nsICryptoHash。例如,如果你想使用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)
來獲取原始(二進制)散列值。
你使用什麼編程語言? – 2012-01-22 13:32:01
我正在爲mozila firefox創建一個擴展,所以它是javascript,但它使用(如果沒有錯誤的話)用C++編寫的類 – AndreiBogdan
嗯,您可以訂購哈希值,但結果通常與您在排序時得到的順序不同散列的對象。爲什麼你想要訂購散列值? –