2017-08-14 90 views
-1

我试着去找出什么样的哈希加密这是javascipt的:这是什么样的散列加密?

function L(j) { 
    var h = a.pbkey, 
     g = a.rndnb; 
    if (typeof f != "undefined") { 
     var e = f.PBK(h), 
      d = f.STBUNC(j), 
      i = f.STBA(g), 
      c = f.ENC(d, e, i), 
      b = f.BAT64(c); 
     return b 
    } else return "" 
} 

它哈希phonenumber.Ex:79645531974

pbkey:'e=010001;m=d06889ab9ea3c9ce9d2e92559d6b2f043ef873f0cc9f858745bc6784d1d9a98f8d354e061d25fad9c3a741c57626d0d65de01eb03584a5af1f579b9f9834a60b628756ad636ec1d3129e87e0c7274670d9ca615f12fe3424e9da362f7f8cce8dfe61d79f5ec68dffe1f3ddcf5e20e1bf07349ee6c747a59b09d6420d131899f93dfaeacd76d6a684cda8ac99e7f87e17507235a2b59b84f56d8a3d4ecdd8259b3c7d892758d69a48930b591e66cc6d88d20a3de9360be30c8a94084a2753c92e0cfd1c94868c90109cd176855bba96cd3e73f34442ddfd256da7f1d1e48fbf265ad2f2caeebe4990ca5638b90b6c3fafa8c015a09947e3f03defc51e231a2f2d' 
rndnb:'7fc1cdfea47d0057bbb33176ce73a376f9319d4e221d84807d74ff2f859b510b9fd132e577ed207d96b1d11e57500bff93efe97842248bcbe39527592797b7e3a821110ae61c3da67c2773bcb634c53357fb230ef95297d20c37d256aa8bd75bea315f2d 

结果:4LW/+zyiBBgDExOLPLafO9T/GG3guycSMK3uz16qFcXWgvo1KAF8VrbGrxAE91Mvk6qUDkX8c9ha7urDB41XDAhciBbj2VzE48WXjB/A6gI6n7qcTwkNTPT0Qly1EFRtTF44xTbPEld/OviYhD2OolumbtL42wtnyw1oh4/2v2SyAqARdGJizRhd1UFpWW+OUIcF3eyhKS1R+TDorsOoM/bJQzR6CTSyLysfPJL8ldjG0Ujevac7dT+WvaXFmP3qlsReMP/FSLjs7xixCAA/VrxIRUragoIOf2cptilop5zJNY26DO/iEhUUU7n8ANayrqthplS3v624XR24iM22bg==

+0

明确的是,代码是**可怕**,无意义的单个字母变量,神秘的函数名称。对'a'和'f'没有线索。这个概念是为其他开发人员编写代码来阅读和轻松理解,在这方面,代码是完全失败的。 – zaph

+0

我认为它可能只是被缩小/加粗的代码。也许这更多的是逆向工程挑战? – dsprenkels

回答

0

代码建议它使用2048位RSA加密(公开模数17)和随机填充方案。

但只有这个代码是不可能解决整个事情。我们需要知道PBK(),STBUNC(),STBA(), ENC(), BAT64()功能是做什么的,否则我们不能确定地说什么关于这里做了什么。

但是,输入参数给出了一些建议。参数暗示加密是基于“公钥”的,并使用指数e = 65537(常用的RSA公共指数)。那么很容易猜到m代表“模量”。我们可以处理RSA或一些对数群加密(例如ElGamal)。要获得更多信息,我们可以检查这个模数m是否是一个质数,结果不是。所以对数组加密是表格,所以我们可能处理RSA。注意模数和输出每个都是2048位,所以这个检查。

但是我们没有完成。我们还有rndnb值,这可能意味着“随机数”。这表明加密不是教科书RSA(感谢上帝),但使用某种随机化。可能它会使用某种标准填充方案,如OAEP

为了得到更多的细节,我们真的需要得到正在使用的函数的主体。