【问题标题】:What is this purpose of this function?这个函数的目的是什么?
【发布时间】:2014-01-19 20:41:01
【问题描述】:

我一直在寻找某个网站的加密密钥,我遇到了这个功能。我想知道这个函数有什么作用,甚至意味着什么?

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;
}

【问题讨论】:

    标签: javascript string function encryption hash


    【解决方案1】:

    这是一个复杂的函数,可以生成字符串(pTextToHash 参数)的哈希值(在本例中为数字)。这样的散列可以用在其他函数中(例如在类似散列图的数据结构中)。

    内部工作涉及:

    • 将字符串中的每个字符转换为数字
    • 一些 有趣的位移和逻辑处理以允许这些数字 合并成某个合数而不破坏 该合数中的先前数字。

    这个函数的一个重要特性是相同的输入总是返回相同的输出。

    【讨论】:

    • 这些生成的hash能破解吗?如果是这样怎么办?还有你建议在哪里寻找 2d 游戏的加密密钥。
    • 哈希不是你破解的东西。它是一种单向算法,如果这就是你的意思,你无法根据输出找到输入字符串。另外:我不知道你的其他问题:-)
    • 好的,我可以从一个站点记录 cookie,但为了使用它们,它们必须被解码和重新散列。一个也知道如何从同一站点记录 cookie 的人告诉我如何注入它们以获取访问权限他告诉我(我刚才所说的方式)。他说我应该在 JS 文件中查找用于破解哈希的加密密钥。我也相信他,因为他在 VIA teamviewer 之前使用 cookie 访问了我的帐户。我知道这个 js 文件在哪里,因为我检查了网站上的每个页面,只找到了问题中的函数..
    • 哦,我确实认为在技术上可以编写一些程序来生成(或查找)会产生给定输出数字的输入字符串,但这可能是一个相当大的难题(或至少是一个新问题;-)
    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多