Archief - PHP/MYSQL: paswoorden encrypten

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Zeppelin

Legacy Member
Hallo

Ik heb zojuist een PHP login-script gemaakt en alles werkt maar het probleem was dat de wachtwoorden ongecrypteerd in mijn database komen te staan, dus iemand die de database hacked heeft alle usernames en wachtwoorden te grabbel. Ben al n uur ant googlen maar vind nx nuttigs, heeft iemand goei resources of tutorials hiervoor?

Alvast bedankt

Coax

Legacy Member
der bestaan een aantal php functies voor zoals md5(), maar ge kunt best uw database da laten oplossen door de PASSWORD() functie in sql. Database is sneller voor van die berekeningen dan php, maar als uw database op een andere server draait dan uw php applicatie dan vliegen ze nog altijd ongeëncrypteerd over het netwerk. (Daarom gebruik ik md5())

Lord Nax

Legacy Member
m.a.w.:

<?php
$paswoord = "dit is een paswoord";
$paswoord_encrypted = md5($paswoord);
mysql_query("INSERT ...");
?>

Zeppelin

Legacy Member
Nope wilt precies ni lukke, k kan het paswoord nog altijd zien onder phpMyAdmin

K heb deze variabele bovenaan mn pagina nu:

PHP:
<?php
	$password = $_POST['passwd'];
	$password_encrypt = md5($password);
	$username = $_POST['username'];
?>

En dit wordt verstuurd naar mn database:

PHP:
$data = "INSERT INTO phplogin (user_name, passwd) ";
$data = $data . "    VALUES ";
$data = $data . "        ('$username','$password_encrypt');";

K had ook iets gelezen ivm crypt() maar dit blijkt niet zo veilig te zijn?

:edit:
K heb t gevonde, was ergens foutje in mn register.php pagina :)
Is er ook een manier om het gecrypte paswoord nu ook decrypted trug te sturen naar de gebruiker, om bijvoorbeeld zijn paswoord te kunnen veranderen?

Akira

Legacy Member
met md5 is dat niet mogelijk, eenmaal uw paswoord gehashed is, kunt ge het nooit meer terug krijgen naar de oorspronkelijke staat. Wat ge wel kunt doen is bij het inloggen van uwen gebruiker zijn ingevoerde paswoord hashen en dan de 2 vergelijken met elkaar. Als ze gelijk zijn, dan is het paswoord juist

Btw, md5 is dus niet crypten maar hashen, der zit nog een groot verschil tussen een paswoord crypten en een paswoord hashen

Lord Titan

Legacy Member
Voila,

dit is een basis encryptie functie dat ik nog ergens had.
geen super beveiliging ma tis toch iets.

grtz

Code:
function arc_crypt( $string) 
  { 
  $salt = "monkey";
    //This function will return a encryted string 
    //The $string will be encrypted in combination with the $salt 
    $salt_value = calc_salt( $salt ); 
    $len_string = strlen( $string ); 
    for( $char_count = 0; $char_count < $len_string ; $char_count++ ) 
      $string[ $char_count ] = chr( ord( $string[ $char_count ] ) + $salt_value ); 
    return $string; 
  } 
			function arc_decrypt( $string ) 
  { 
  $salt = "monkey";
    //This function will return a decryted string 
    //The $string will be decrypted in combination with the $salt 
    $salt_value = calc_salt( $salt ); 
    $len_string = strlen( $string ); 
    for( $char_count = 0; $char_count < $len_string ; $char_count++ ) 
      $string[ $char_count ] = chr( ord( $string[ $char_count ] ) - $salt_value ); 
    return $string; 
  } 
  function calc_salt( $salt ) 
  { 
    //Calculate the salt 
    $len_salt = strlen( $salt ); 
    //When true, addstract(??) the ascii value. 
    $min_plus = true; 
    //Set the salt_value 
    $salt_value = 0; 
    for( $char_count = 0; $char_count < $len_salt ; $char_count++ ){ 
      $char_value = ord( $salt[ $char_count ] ); 
      if( $min_plus ) 
      { 
        $salt_value += $char_value; 
        $min_plus   = false; 
      } 
      else 
      { 
        $salt_value = $salt_value - $char_value; 
        $min_plus   = true; 
      } 
    } 
    if( $salt_value < 0 ) 
      $salt_value -= $salt_value * 2; 
    return $salt_value; 
  } 
  ?>

PerfectPC

Legacy Member
Lord Titan zei:
Voila,

dit is een basis encryptie functie dat ik nog ergens had.
geen super beveiliging ma tis toch iets.

grtz
dan kunt ge ze even goed als plain text opslaan in uw database. wat is me dat voor een onveilig script...

killgore

Legacy Member
PerfectPC zei:
dan kunt ge ze even goed als plain text opslaan in uw database. wat is me dat voor een onveilig script...
idd, of de std hash functies uit php gebruiken.

MD5 is idd vergelijkings algortime, maar wat je zegt: als de md5-hashes identiek zijn dat het klopt is ook niet 100% juist ;). Je kan 2 strings hebben die dezelfde md5 hash hebben (natuurlijk zal het zelden of nooit gebeuren dat jij toevallig een pass invult dat juist die md5 hash uitkomt :p)

Lashknife

Legacy Member
ik gebruik een sha1 voor passes en mog een md5 combinatie ter controle

pretty safe voor de common php site tegenwoordig lijkt me
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan