Avatar billede Fiber Bjørn Juniormester
06. januar 2014 - 17:10 Der er 7 kommentarer og
1 løsning

Gem password kryptere i DB.

Hvordan kan jeg kryptere dette password der er gemt i "g"

jeg har fundet denne men kan ikke lige se hvordan at jeg skal overføre det på det jeg har hvor password skal være.
Hvad er forskellen på kode og hemmeligkey, eller hvad skal der stå i disse felter.


SQL = "insert into logincs (brugernavn, password) values ('" & Brugernavn & "', AES_ENCRYPT('" & kode & "','hemmeligkey')) "


hvordan hentes og gemmes krypteret data i DB??????????

if($_GET['action'] == "opret"){   
$ret_kunde = $_GET["over_id"];
mysql_query("insert into person (a, b, c, d, e, f, g) values  ('$_POST[1]','$_POST[2]','$_POST[3]','$_POST[4]','$ret_kunde','$_POST[5],'$_POST[6]')");
echo mysql_error();
}

if($_GET['action'] == "ret"){
$over_id = $_GET["overid"];
$strSQL = "UPDATE person SET a = '$_POST[1]' , b = '$_POST[2]' , c = '$_POST[3]' , d = '$_POST[4]', f = '$_POST[5]' WHERE id = $over_1";
mysql_query($strSQL) or die(mysql_error());
}



$over_1 = $_GET["over_1"];
$query_id_info = mysql_query("select * from person where id = '".$over_1."'");
$getter_id_info = mysql_fetch_array($query_id_info);
$id_info_id = $getter_id_info["id"];
$id_info_1 = $getter_id_info["a"];
$id_info_2 = $getter_id_info["b"];
$id_info_3 = $getter_id_info["c"];
$id_info_4 = $getter_id_info["d"];
$id_info_5 = $getter_id_info["e"];
$id_info_6 = $getter_id_info["f"];
$id_info_7 = $getter_id_info["g"];
$id_info_8 = $getter_id_info["f"];

a=anvn
b=tlf
c=mobil
d=email
e=id_nummer
f=initialer
g=pasword
Avatar billede arne_v Ekspert
06. januar 2014 - 17:22 #1
Det anbefales normalt at gemme password hashet fremfor krypteret.

Lidt beskyttelse mod SQL injection ville nok ogsaa vaere godt.
Avatar billede Fiber Bjørn Juniormester
06. januar 2014 - 18:25 #2
#1
Jeg har været inde at læse din forklaring i denne guide.
http://www.eksperten.dk/guide/1542
Det giver lidt mening men forstår ikke det hele.... og jeg har være inde på andre indlæg for at se nogle eksempler på hvordan at det skal gøres men har ikke fundet noget brugbart synes jeg.

også havde jeg jo som nævnt glemt at sikre for injekt
Men det skulle gerne være klaret nu med dette?

if($_GET['action'] == "opret"){   
$over_id = mysql_real_escape_string($_POST["over_id"]);
$over_1 = mysql_real_escape_string($_GET["over_1"]);
$ret_kunde = mysql_real_escape_string($_GET["over_id"]);
$opret1 =  mysql_real_escape_string($_POST["1"]);
$opret2 =  mysql_real_escape_string($_POST["2"]);
$opret3 =  mysql_real_escape_string($_POST["3"]);
$opret4 =  mysql_real_escape_string($_POST["4"]);
$opret5 =  mysql_real_escape_string($_POST["5"]);
$opret6 =  mysql_real_escape_string($_POST["6"]);
$opret7 =  mysql_real_escape_string($_POST["7"]);



mysql_query("insert into ordrebloch_kunde_ref_person (a, b, c, d, e, f, g) values  ('$opret1','$opret2',$opret3','$opret4','$opret5','$opret6,'$opret7')");
header("Location:opret_kunde.php?ret_kunde=".$ret_kunde."&action=se");

echo mysql_error();
}


Men så er spørgsmålet stadig hvor kan jeg finde et eksempel på hvordan at jeg sikre med hashe. Det er jeg meget på glat is.
Avatar billede arne_v Ekspert
07. januar 2014 - 03:52 #3
mysql_real_escape_string beskytter hvis du ved at connection er den samme som du forespoerger paa - jeg angiver altid connection eksplicit

og mysqli of prepare er en noget mere moderne maade at goere det paa
Avatar billede arne_v Ekspert
07. januar 2014 - 03:53 #4
selve logikken er jo meget simpel:
* du gemmer salt og hash af salt + password i databasen ved oprettelse
* ved login checker henter du salt, beregner hash af salt + password og sammenligner med det gemte i databasen
Avatar billede Fiber Bjørn Juniormester
20. marts 2014 - 17:41 #5
Hej igen Arne_v.

Så skal jeg igang med at lave dette med password.
Jeg har fundet dette.

$salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM);
$salt = base64_encode($salt);
$salt = str_replace('+', '.', $salt);
$hash = crypt('rasmuslerdorf', '$2y$10$'.$salt.'$');

echo $hash;

og der kommer der dette resultat.
$2y$10$qK5/tbxVPZfw/QAjmh7zp.VMOkZQWgi7V05pyp4L8/EUAHZeiYQUK


Er det den rigtige måde at lave????
Jeg har også læst dette.

https://crackstation.net/hashing-security.htm#phpsourcecode

Men kan ikke lige finde ud af hvordan at dette skal bruges.


Som du kan se er jeg lidt på bar bund. Kan du hjælpe eller har du et link som beskriver det lidt mere step by step.....
Avatar billede Fiber Bjørn Juniormester
20. marts 2014 - 20:20 #6
Er dette en løsning der holder vand

  if( isset($_GET["action"]) && $_GET["action"] == "login")
  {
     
    $email = mysql_real_escape_string($_POST["skriv_email"]);
    $kodeord = mysql_real_escape_string($_POST["skriv_kodeord"]);

$password = $kodeord; 
$salt = $email; 
$passhashblochind = hash('sha256', $salt.$password);

   
   
$sql= "SELECT * FROM ******** WHERE (email = '".$email."' AND kodeord = '".$passhashblochind."')"; 
$result=mysql_query($sql);   
$row=mysql_fetch_array($result); 
$username = mysql_real_escape_string($email); 
$password = $kodeord; 
$salt = $username; 
$auth_user = hash('sha256', $salt.$password);


if($row["kodeord"] == $auth_user){ 
    echo "<br />Logged in<br />"; 
} else { 
    echo "<br />Not logged in<br />"; 
}

}
Avatar billede Fiber Bjørn Juniormester
14. september 2014 - 16:54 #7
Hej Arne.
Vil du ligge er svar. Jeg lukker spørgsmål.
Dit svar hjalp mig på vej :)
Avatar billede Fiber Bjørn Juniormester
17. maj 2016 - 16:13 #8
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester