Mam następujący kod, wstawia on userName
i password
do bazy danych , ale hasło jest przechowywane w formacie zwykłego tekstu. Mam na myśli, kiedy zajrzę do bazy danych, mogę zobaczyć wprowadzone hasło.Szyfrowanie pól hasła w mongodb
Chcę przechowywać password
w formacie 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);
W jaki sposób można to osiągnąć?
Szyfrowanie należy wykonać w języku Java. Zapoznaj się z technikami szyfrowania haseł - PBKDF2 lub bcrypt lub scrypt –
Tak więc użyj metody szyfrowania ciągu. Bazy danych przechowują tylko to, o co ich prosisz. Nie ma "zaszyfrowanego" typu pola, a MongoDB to "bezzasadne", więc nie ma "typów pól". To dla twojego kodu do zaimplementowania. –
Nie chcesz szyfrować hasła, ale hash to - duża różnica. [https://crackstation.net/hashing-security.htm](https://crackstation.net/hashing-security.htm) to przewodnik, jak to zrobić właściwie. – jHilscher