2017-02-04 1 views
0

Ich möchte einen Text in Hash-ID von Zahlen mit Knoten js konvertieren. Haben Sie bereits ein Java-Programm zu konvertieren, aber die gleiche Art der Implementierung mit Knoten js durchgeführt werden.konvertieren Sie einen Text zu Hash in Knoten js

Java-Code

public static long generateId(String text) { 

    byte[] buffer = null; 
    MessageDigest md = null; 
    try { 
     md = MessageDigest.getInstance("SHA1"); 
     md.reset(); 
     buffer = text.getBytes(Charsets.UTF_8); 

    } catch (NoSuchAlgorithmException e) { 
     e.printStackTrace(); 
    } 
    md.update(buffer); 
    byte[] digest = md.digest(); 
    String hexStr = ""; 
    for (int i = 0; i < digest.length; i++) { 
     hexStr += Integer.toString((digest[i] & 0xff) + 0x100, 16).substring(1); 
    } 
    long hashid = 0; 
    for (int i = 0; i < hexStr.length(); i++) 
     hashid += Math.abs((long) Math.pow(27, 10 - i) * ('a' - (1 + hexStr.charAt(i)))); 

    return hashid; 
} 

konnte ich danach in NodeJS bis zu verdauen konvertieren, vermag ich nicht zu gehen.

function generateHashCode() 
 
{ 
 
var text = '9/01/2017'+'xx'+'405'+''+'SDD'+'MDD'+'9'; 
 
var crypto = require('crypto'); 
 
console.log(crypto.createHash('SHA1').update(text).digest("hex")); 
 
var hexDigest = crypto.createHash('SHA1').update(text).digest("hex"); 
 
var hexStr; 
 
}

Bitte helfen Sie mir auf dieser

Antwort

0
function generateHashCode(text) 
{ 
    // assuming text is UTF-8 encoded 

    var crypto = require('crypto'); 
    var hexDigest = crypto.createHash('SHA1').update(text).digest(); // this should be .digest() not .digest('hex') 

    var hexStr = ""; 
    for (var i = 0; i < hexDigest.length; i++) { 
     hexStr += (((hexDigest[i] - 0x100) & 0xff) + 0x100).toString(16).substr(1); // fixed some math issues here 
    } 

    var hashid = 0; 
    var a = 'a'.charCodeAt(0); // or just var a = 97; 
    for (var i = 0; i < hexStr.length; i++) 
     hashid += Math.abs(Math.pow(27, 10 - i) * (a - (1 + hexStr.charCodeAt(i)))); 

    return hashid; 
} 

console.log(generateHashCode("batman")); 
+0

Dank! die letzte Iteration gibt NaN – user3671807

+0

@ user3671807 Wo genau? Erkläre mehr! –

+0

Hash-ID in der letzten for-Schleife gibt NaN zurück, nicht sicher, ob etwas fehlt. – user3671807