2012-08-31 5 views
4

Je travaille sur un projet qui implique beaucoup de données cryptées. Fondamentalement, ce sont des objets JSON sérialisés en une chaîne, puis cryptés avec AES256 dans un Cyphertext, et doivent ensuite être stockés dans Mongo. Je pourrais bien sûr le faire de la manière décrite ci-dessus, qui stockera le texte chiffré en tant que chaîne dans un document BSON. Cependant, de cette façon, si pour une raison quelconque le Cyphertext n'est pas traité correctement (par exemple, un jeu de caractères différent ou une autre raison), le texte chiffré est modifié et je ne peux plus reconstruire la chaîne d'origine. Avec des millions d'enregistrements, c'est inacceptable (c'est aussi lent).mongodb, node.js et données cryptées

Existe-t-il un moyen approprié d'enregistrer le texte chiffré dans un format binaire natif, de le récupérer binaire et de le renvoyer à la chaîne d'origine? Je suis habitué à travailler avec des cordes, mes compétences en format binaire sont plutôt rouillées. Je suis très intéressé à entendre vos pensées sur le sujet.

Merci à tous pour vos commentaires,

Fabian

Répondre

4

oui :)

var Binary = require('mongodb').Binary; 
var doc = { 
    data: new Binary(new Buffer(256)) 
} 

or with 1.1.5 of the driver you can do 

var doc = { 
    data: new Buffer(256) 
} 

Les données sont toujours retourné comme un objet binaire, cependant, et pas un tampon. Le lien vers les docs est ci-dessous.

http://mongodb.github.com/node-mongodb-native/api-bson-generated/binary.html

+0

Merci, mais il ne répondit la moitié de mon insécurité avec binaire. Je suppose que je peux enregistrer quelque chose en binaire dans la base de données, mais cela laisse toujours la question de savoir comment créer un texte chiffré binaire. – Fabdrol

+0

http://nodejs.org/api/crypto.html#crypto_class_cipher Il suffit de crypter les données en utilisant le nœud. js crypto api et sauvegardez le Buffer résultant en utilisant la classe Binary. – christkv

Questions connexes