2016-08-18 6 views
0

Пробовал об этом за 2 дня, но неудачно пропустил. Мы используем appcelerator 5.1.0.Как сгенерировать кодировку base64, SHA-512 в Appcelerator?

Я могу хэш строку, используя модуль 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.
  3. В коде создать объект:

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

  4. Hash строку первым, чтобы получить объект буфера, а затем кодировать его в base64 строку.

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

 Смежные вопросы

  • Нет связанных вопросов^_^