Ho il seguente codice, inserisce il userName
e password
nel database ma la password è memorizzata in formato di testo normale. Voglio dire quando guarderò nel db posso vedere la password inserita.Encrypt password fields in mongodb
voglio conservare password
in formato encrypted
MongoClient client = new MongoClient("localhost",27017);
DB db = client.getDB("Test");
DBCollection collection = db.getCollection("EncryptionDemo");
BasicDBObject documentDetail = new BasicDBObject();
documentDetail.put("userName", "admin12");
documentDetail.put("password", "12345");
collection.insert(documentDetail);
Come posso raggiungere questo obiettivo?
La crittografia deve essere eseguita nella codifica Java. Dai un'occhiata alle tecniche di crittografia password - PBKDF2 o bcrypt o scrypt –
Quindi usa il metodo per crittografare la stringa. I database archiviano solo ciò che gli chiedi. Non esiste un tipo di campo "crittografato" e MongoDB è "schemaless", quindi non ci sono "tipi di campo". Questo è il codice da implementare. –
Non si desidera crittografare la password ma hash - grande differenza. [https://crackstation.net/hashing-security.htm](https://crackstation.net/hashing-security.htm) è una guida su come farlo correttamente. – jHilscher