Encryptie functie niet functionerend...
Gegroet zijt u allen,
Was even beetje aan het rondlezen over md5, salt en sha1, en kwam in een ander topic tegen dat md5 op zichzelf best prima is, maar dat als je de hash gewoon even googeld/googled je soms al het wachtwoord vind (even getest, en is bij simpele wachtwoorden heel makkelijk inderdaad.... :O ). Nu had ik ergens deze code gevonden:
Vond ik er best leuk uitzien, en wilde even een poging doen dat toe te passen in mijn eigen scripts. Dus ik maakte de function encrypt aan:
De function "escape" is een eerder aangemaakte functie van 3 regels om gewoon niet altijd hele mysql_real_escape_string te hoeven uitschrijven, en die functie werkt gewoon prima. Trim spreekt voor zichzelf, een bestaande functie in php.
Als ik nu met een query ga INSERT-en, op deze manier:
Probleem nu is dat als ik in de database kijk, in de kolom wachtwoord leeg is..... als ik de query echo, blijkt hij inderaad daar gewoon niks te inserten.....
Was even beetje aan het rondlezen over md5, salt en sha1, en kwam in een ander topic tegen dat md5 op zichzelf best prima is, maar dat als je de hash gewoon even googeld/googled je soms al het wachtwoord vind (even getest, en is bij simpele wachtwoorden heel makkelijk inderdaad.... :O ). Nu had ik ergens deze code gevonden:
Code (php)
Vond ik er best leuk uitzien, en wilde even een poging doen dat toe te passen in mijn eigen scripts. Dus ik maakte de function encrypt aan:
Code (php)
De function "escape" is een eerder aangemaakte functie van 3 regels om gewoon niet altijd hele mysql_real_escape_string te hoeven uitschrijven, en die functie werkt gewoon prima. Trim spreekt voor zichzelf, een bestaande functie in php.
Als ik nu met een query ga INSERT-en, op deze manier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$cQuery = "
INSERT INTO
gebruikers
(Gebruikersnaam,Wachtwoord,IP,Type )
VALUES(
'".escape($_POST['Gebruikersnaam'])."',
'".encrypt($_POST['Wachtwoord1'])."',
'".escape($realip)."',
'".escape('user')."'
)";
?>
$cQuery = "
INSERT INTO
gebruikers
(Gebruikersnaam,Wachtwoord,IP,Type )
VALUES(
'".escape($_POST['Gebruikersnaam'])."',
'".encrypt($_POST['Wachtwoord1'])."',
'".escape($realip)."',
'".escape('user')."'
)";
?>
Probleem nu is dat als ik in de database kijk, in de kolom wachtwoord leeg is..... als ik de query echo, blijkt hij inderaad daar gewoon niks te inserten.....
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
Gesponsorde koppelingen:
En wat gaat er nu fout?
Je vergeet 'return $password;' in je functie :)
haha, briljante opmerking Jelmer ;) Dank is groot.
Je hebt nog aardig wat te leren over encryptie. Dit is mijn insziens absoluut niet logisch (lees: veilig).
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
Het veilig genoeg, het is alleen niet altijd handig om zichzelf als salt te gebruiken. Opzich is sha1(password) al genoeg. Doe je nog sha1(salt . password . salt) dan zit je helemaal veilig.
Het is inderdaad niet handig om je password ook als salt te gebruiken. Dan verdwijnt het nut van je salt.
Maar waar ik meer op doelde is dat de salt nu tweemaal geëncrypt wordt en vervolgens nogmaals samen met het password. Eénmaal in totaal is voldoende.
Maar waar ik meer op doelde is dat de salt nu tweemaal geëncrypt wordt en vervolgens nogmaals samen met het password. Eénmaal in totaal is voldoende.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP
Was gewoon maar een voorbeeld dat mijn aandacht trok. Ben uitermate onbedreven in php (al leer ik steeds meer), en wilde gewoon even kijken hoe en wat dit binnen mijn systeem zou doen. Begrijp dat het niet helemaal ideaal is toegepast.
Wat betreft de $salt, hebben jullie suggestie voor een leuke salt? Vind het ook zo flauw en simpel staan als ik $salt = 854930 gebruik o.id.
Wat betreft de $salt, hebben jullie suggestie voor een leuke salt? Vind het ook zo flauw en simpel staan als ik $salt = 854930 gebruik o.id.
Sije Harkema schreef op 21.04.2009 16:40:
Was gewoon maar een voorbeeld dat mijn aandacht trok. Ben uitermate onbedreven in php (al leer ik steeds meer), en wilde gewoon even kijken hoe en wat dit binnen mijn systeem zou doen. Begrijp dat het niet helemaal ideaal is toegepast.
Wat betreft de $salt, hebben jullie suggestie voor een leuke salt? Vind het ook zo flauw en simpel staan als ik $salt = 854930 gebruik o.id.
Wat betreft de $salt, hebben jullie suggestie voor een leuke salt? Vind het ook zo flauw en simpel staan als ik $salt = 854930 gebruik o.id.
Verzin zelf eens een saltstring..
Inspiratie voldoende... :P
Leek me leuk om m'n salt string niet 1 expressie te maken, wilde dus, wat ze volgens mij noemen, een dynamic salt. Leek mij echter een probleem als ik een dynamic salt zou hebben (zal m'n post wel editen als ik de term fout heb) ik wel mooi de het ge-encrypte wachtwoord kon inserten in de database (ok, md5 is niet echt encryptie), maar er bij de controle er een andere salt werd gebruikt en dus geen "match" zou zijn.
Las net iets over user id gebruiken als salt, maar dat lijkt me ook niet helemaal een leuke optie, aangezien je dan met inserten een heel gedoe krijgt......... en later met opvragen ook.......
Las net iets over user id gebruiken als salt, maar dat lijkt me ook niet helemaal een leuke optie, aangezien je dan met inserten een heel gedoe krijgt......... en later met opvragen ook.......
Het is geen encryptie maar hashing. Salt zou je afhankelijk kunnen maken van de waarden van meerdere velden en een zelf verzonnen string.
Lijkt mij dynamisch genoeg. Door hetzelfde geintje uit te halen bij het inloggen kan je ook gewoon controleren of het wachtwoord correct is.
Code (php)
Lijkt mij dynamisch genoeg. Door hetzelfde geintje uit te halen bij het inloggen kan je ook gewoon controleren of het wachtwoord correct is.
Als je het dynamisch wilt maken , kun je met salt & pepper gaan werken. Daarbij kun je de salt statisch in een configuratiebestand zetten en de pepper in de database opslaan in een eigen kolom. De pepper genereer je dynamisch per gebruiker bij het registreren.
Je krijgt dan zoiets:
Je krijgt dan zoiets:
Theforce117 schreef op 21.04.2009 18:09:
Nogmaals, dit is NIET veiliger dan slechts eenmaal sha1 toepassen. Beginnersfout.@GaMer13: de terminologie is officieel precies andersom, een salt komt uit de database, terwijl de pepper in een bestand staat.
Leesvoer.
Gewijzigd op 01/01/1970 01:00:00 door Mark PHP



