2017-08-14 87 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

爲了得到更多的細節,我們真的需要得到正在使用的函數的主體。