2016-12-20 2 views
-1

Ich brauche eine Zeichenfolge zu verschlüsseln, aber ich bekomme fast die gewünschte Ausgabe, ich lese online, dass es etwas mit Padding und iv_vector am Ende zu tun hat für die verbleibenden 8 Bytes zu sein, um gleich zu sein Länge als txtToEncrypt.Verschlüsseln Zeichenfolge mit Blowfish in NodeJS

Ich bin mit dieser Bibliothek https://github.com/agorlov/javascript-blowfish

// function in Java that I need 
// javax.crypto.Cipher.getInstance("Blowfish/CBC/NoPadding").doFinal("spamshog") 


var iv_vector = "2278dc9wf_178703"; 
var txtToEncrypt = "spamshog"; 
var bf = new Blowfish("spamshog", "cbc"); 

var encrypted = bf.encrypt(txtToEncrypt, iv_vector); 

console.log(bf.base64Encode(encrypted)); 

Actual output: /z9/n0FzBJQ= 
What I need: /z9/n0FzBJRGS6nPXso5TQ== 

Wenn jemand eine Ahnung hat, lass es mich wissen. Ich habe den ganzen Tag über Google gesucht.

+0

Was ist die merkwürdige Ausgabe, Sie bekommen? – Jason

+0

Dies ist:/z9/n0FzBJQ = –

+0

Gotcha. Es ist eindeutig mit der von Ihnen gesuchten Ausgabe verbunden, so dass es aussieht, als wäre es ein Detail in dem Modul, das Sie verwenden. Wenn Sie später noch stecken bleiben, wenn ich etwas Zeit habe, schaue ich mir den Backend-Code an und sehe nach, ob es irgendwelche Hinweise gibt. – Jason

Antwort

0

Schließlich ist hier wie eine Zeichenfolge in NodeJS verschlüsseln mit Blowfish

// Module crypto already included in NodeJS 
var crypto = require('crypto'); 

var iv = "spamshog"; 
var key = "spamshog"; 
var text = "2278dc9wf_178703"; 
var decipher = crypto.createCipheriv('bf-cbc', key, iv); 
decipher.setAutoPadding(false); 
var encrypted = decipher.update(text, 'utf-8', "base64"); 
encrypted += decipher.final('base64'); 

console.log(encrypted); 

Returns: /z9/n0FzBJRGS6nPXso5TQ== 
Verwandte Themen