ITI0011:harjutus 16
Kirjeldus
Kirjutada programm, mis loeb etteantud properties-failist kasutajanime ja parooli ning salvestab turvalisema variandi teise faili. Teise faili salvestatakse sama kasutaja andmed, aga parool on soolatud räsina (salted hash). Mõlemad failid on properties-tüüpi failid (vt viiteid allpool).
Algne fail:
username=Juku password=raskeparool123
Teie peate implementeerima failist lugemise ja kirjutamise meetodid - vastavalt readUserDataFromFile
ja saveNewUserDataToFile
.
Programm kontrollib, kas on olemas räsitud parooliga fail "newUser.properties". Kui see puudub, siis tehakse see fail SaveNewUserDataToFile meetodiga. Uues failis peavad olema võtmesõnad: "username", "password" ja "salt". Kui aga käivitamisel eksisteerib "newUser.properties" mõnest eelnevast käitamisest, siis programm kutsub esile authenticate meetodi, mis laseb kasutajal parooli pakkuda.
Esmalt oleks mõistlik realiseerida readUserDataFromFile
meetod, kuna uue faili andmed on otseses sõltuvuses meie antud faili sisust - mida võib vabalt muuta, aga kindlasti peavad olema võtmesõnad "username" ja "password".
Programmi eesmärk on näidata, et tundlikke andmeid pole hea mõte salvestada inimloetaval kujul.
Lugemine soolatud räsimise kohta: https://crackstation.net/hashing-security.htm
Kui pikad tekstid pole päris Teie rada, siis järgmine link on ka piisav lugemine: http://security.stackexchange.com/questions/51959/why-are-salted-hashes-more-secure
Kiire ülevaade Java Propertiesist: http://www.mkyong.com/java/java-properties-file-examples/