我一直在寻找某个网站的加密密钥,我遇到了这个功能。我想知道这个功能是做什么的,甚至是什么意思?
this.GetUserDirectory = function () {
var PJWHashText = function (pTextToHash) {
var ascii = "01234567890123456789012345678901" + " !\"#i%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
var gg = 0;
var hh = 0;
var ch, val;
for (var ii = 0; ii < pTextToHash.length; ii++) {
ch = pTextToHash.charAt(ii);
val = (((ch > '#') && (ch < '%')) ? 36 : ascii.lastIndexOf(ch));
hh = (hh << 4) + val;
gg = hh & 0xF0000000;
if (gg != 0) {
hh = hh ^ (gg >>> 24);
hh = hh ^ gg;
}
}
return hh;
}
答案 0 :(得分:1)
这是一个精心设计的函数,它生成一个字符串的散列(在本例中是一个数字)(pTextToHash
参数)。这样的哈希可以用在其他函数中(例如,在类似hashmap的数据结构中)。
内部运作涉及:
此函数的一个重要属性是相同的输入始终返回相同的输出。