2016-08-18 9 views
0

これを2日間試してみましたが、惨めに失敗しました。 appcelerator 5.1.0を使用しています。Appelseratorでbase64でエンコードされたSHA-512ハッシュを生成するにはどうすればよいですか?

モジュールSecurelyを使用して文字列をハッシュすることができます。しかし、結果の文字列は16進形式で、私は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つまたは2つの光を出す?ありがとう。

答えて

1

は、最後にそれがforge

  • (ノードを経由して)ローカルマシンにモジュールを取り付け名付け、libフォルダの下にフォルダを作成し、将来の参照

    1. はこちらの手順を入れて、Forgeの助けを借りてそれをやりましたjsフォルダの全内容をforgeフォルダにコピーします。コードで
    2. は、オブジェクトを作成する:

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

    3. ハッシュ文字列を最初に、バッファオブジェクトを取得base64文字列にそれをエンコードします。

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

  • 関連する問題