2017-07-25 7 views
0

Ich verwende den folgenden Code, um Daten zu hashen und es funktioniert gut. Nahm den Code aus crypto websiteReverse Hashing in Knoten js?

const crypto = require('crypto'); 

const secret = 'abcdefg'; 
const hash = crypto.createHmac('sha256', secret) 
        .update('I love cupcakes') 
        .digest('hex'); 
console.log(hash); 
// Prints: 
// c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e 

Mein Problem ist, wie man dies umgekehrt? Wie kann ich Daten wieder in einen normalen Text aufheben?

+3

Sie nicht. Dafür ist ein Hash gedacht. Sie suchen wahrscheinlich nach * Verschlüsselung *. – Robert

+0

Mögliches Duplikat von [Grundlegender Unterschied zwischen Hashing- und Verschlüsselungsalgorithmen] (https://stackoverflow.com/questions/4948322/fundamental-difference-between-hashing-and-cryption-algorithms) –

Antwort

0

Ein Hash kann nicht rückgängig gemacht werden ... Dafür benötigen Sie eine Chiffre. Hier ist meine kleine, sehr simple, geheime Klasse.

import crypto from 'crypto' 
let Secret = new (function(){ 
    "use strict"; 

    let world_enc = "utf8" 
    let secret_enc = "hex"; 
    let key = "some_secret_key"; 

    this.hide = function(payload){ 
     let cipher = crypto.createCipher('aes128', key); 
     let hash = cipher.update(payload, world_enc, secret_enc); 
     hash += cipher.final(secret_enc); 
     return hash; 
    }; 
    this.reveal = function(hash){ 
     let sha1 = crypto.createDecipher('aes128', key); 
     let payload = sha1.update(hash, secret_enc, world_enc); 
     payload += sha1.final(world_enc); 
     return payload; 
    } 
}); 

export {Secret};