Pereiti prie turinio

sqlite3 slaptazodzio hash'inimas


Rekomenduojami pranešimai

Sveiki,

Gal kas gali patarti kokia funkcija ir kaip naudoti sqlite3 duomenu baseje? sukuriau duomenu base kur vienoje lenteleje yra emailas, hash_slaptazodis, ...). As bandau ivesti taip:

 

INSERT INTO User(epost, hash_slaptazodis, vardas) VALUES ('user@epost.com', MD5('user123'), 'Marius');

 

Bet gaunu:

Error: no such function: MD5

 

Taip pat bandziau ir su HashBytes, bet klaida ta pati:

INSERT INTO User(....) VALUES ('user@epost.com', HASHBYTES('MD5', @user123), 'Marius');

Error: no such function: HashBytes.

 

 

Ar galima sukurti kokiu tai budu nenaudojan PHP ar C hash funkcija?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveikas, keletas dalyku:

 

Sveiki,

Gal kas gali patarti kokia funkcija ir kaip naudoti sqlite3 duomenu baseje?....

 

Is karto prieinam siena, sqlite yra gan minimali implementacija skirta silpniems irenginiams / laikinam testavimui / etc. ( https://www.sqlite.org/whentouse.html ) ir ji neturi daugelio dalyku kuriu tiketumeis is 'mainstream' RDBMS, vienas ju - hash funkcijos kaip md5(), hashbytes(), ir panasiai.

 

INSERT INTO User(epost, hash_slaptazodis, vardas) VALUES ('user@epost.com', MD5('user123'), 'Marius');

 

Kitas didziulis ne - MD5. MD5 yra netinkamas naudoti slaptazodziams ir kitiems saugiems dalykams, nes jis yra silpnas ir reversible - zinant hash'a, gali paprasciausiai nueiti svetaines kaip https://md5.gromweb.com/ ir suzinoti pradine reiksme (e.g. raw slaptazodi), kas panaikina hash'inimo verte.

Slaptazodziams paprastai nori naudoti kazka leto ir ko nebutu galima naudoti su gpu (gpu yra zymiai greitesnes nei cpu, tad jeigu hash funkcija galima naudoti su gpu (pvz. sha seimos hash funkcijos), suteiki sioki toki pranasuma potencialiems puolejams.

Standartines hash funkcijos dabar naudojamos butent slaptazodziams ir pns yra bcrypt, scrypt, PBKDF2.

 

Tada dar prieinam apskritai prie idejos generuoti hash'us tarp duomenu bazes, kas yra prasta ideja del poros priezasciu:

  • Nereikalingai apkrauni db serveri (kas turbut nevisai galioja siuo atveju jeigu naudoji sqlite tarp to pacio serverio kaip db klientas kuris siuncia sita query)
  • Padidini atakos vektoriu siusdamas raw slaptazodzius i duomenu baze potencialiom 'man in the middle' atakom (kas velgi turbut nevisai galioja siai situacijai jeigu db ir db klientas yra tarp to pacio serverio)

 

Paprastai geriausia ideja yra tiesiog naudoti koki nors framework kuris pasirupintu visa apsauga uz tave, nes ji yra sudetinga (as tik uzsiminiau apie hash funkcijas, bet yra daugiau niuansu) ir menka klaida gali buti potencialiai katastrofiska (afaik CityBee data leak'as ivyko del nepazymeto 1 check box'o).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Sukurti naują...

Svarbi informacija

Informuojame, kad šiame puslapyje naudojami slapukai (angl. cookies). Sutikdami, paspauskite mygtuką „Sutinku“ arba naršykite toliau. Savo duotą sutikimą bet kada galėsite atšaukti pakeisdami savo interneto naršyklės nustatymus ir ištrindami įrašytus slapukus.