2016-08-18 64 views
0

已經嘗試了2天,但失敗慘敗。我們正在使用appcelerator 5.1.0。如何在Appcelerator中生成base64編碼的SHA-512哈希?

我可以使用模塊Securely散列字符串。然而,結果字符串是十六進制格式,我需要它在base64編碼的字符串。

嘗試了Ti.Utils.base64encode函數,但結果與後端生成的結果不匹配。這裏是我的代碼片段:

function convertHexToBase64(hexStr){ 
    console.log("hex: "+hexStr); 
    var hexArray = hexStr 
      .replace(/\r|\n/g, "") 
      .replace(/([\da-fA-F]{2}) ?/g, "0x$1 ") 
      .replace(/ +$/, "") 
      .split(" "); 
    var byteString = String.fromCharCode.apply(null, hexArray); 
    var base64String = Ti.Utils.base64encode(byteString).toString(); 
    console.log("base64 string:"+base64String); 
    return base64String; 
} 

試圖找到其他模塊使用和節點的緩存是最接近我能,但我不知道如何使用Appcelerator的一個節點類...

誰都可以一盞燈還是兩個?謝謝。

回答

1

最後用Forge的幫助下做到了,把步驟在這裏以供將來參考

  1. 創建lib文件夾下的文件夾,將其命名爲forge
  2. 安裝模塊到本地計算機(通過節點) ,將js文件夾的全部內容複製到forge文件夾中。第一

    var forge = require('forge/forge');

  3. 散列字符串得到一個緩衝器對象,那麼它編碼成BASE64字符串:

  4. 在代碼中,創建對象。

var md = forge.md.sha512.create(); md.update(saltedText); var buffer = md.digest(); result = forge.util.encode64(buffer.getBytes());