2016-08-18 2 views
0

2 일 동안 시도했지만 비참하게 실패했습니다. 우리는 appcelerator 5.1.0을 사용하고 있습니다.Appcelerator에서 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의 노드 클래스를 사용하는 방법을 잘 모르겠습니다 수있는 가장 가까운 빛 또는 2 개 창고? 감사.

답변

1

마지막으로는 forge

  • (노드를 통해) 로컬 시스템에 모듈을 설치라는 이름의 lib 폴더 아래에 폴더를 만들고 나중에 참조

    1. 여기 단계를 가하고, Forge의 도움으로 그것을했다 js 폴더의 전체 내용을 forge 폴더로 복사하십시오. 코드의
    2. 는 객체를 생성 :

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

    3. 해시 문자열을 먼저 버퍼 개체를 얻을베이스 64 문자열로 인코딩.

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

  • 관련 문제