PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Parooli krüpteerimine
Postitaja: Parool 2015-04-08 19:35:00
Tere,

Kuidas saaks automaatselt krüpteerida andmebaasis paroole? Mõtlen nii, et need kontod on mujal kasutusel, lihtsalt tabelis ja sooviks, et seal oleks parool varjatud või midagi.

RE: Parooli krüpteerimine
Postitaja: geo__ 2015-04-08 19:52:13
TSITEERITUD:
Tere,

Kuidas saaks automaatselt krüpteerida andmebaasis paroole? Mõtlen nii, et need kontod on mujal kasutusel, lihtsalt tabelis ja sooviks, et seal oleks parool varjatud või midagi.



http://php.net/md5
RE: Parooli krüpteerimine
Postitaja: Arvi V 2015-04-08 22:09:59
MD5 pole piisavalt turvaline ja puudub sool.
Kasuta parem crypti. http://php.net/manual/en/function.crypt.php
RE: Parooli krüpteerimine
Postitaja: blaa 2015-04-09 12:26:53
Soola saab ka lisada md5-le, pole probleemi.

Igatahes, misiganes funktsiooni kasutada, ei tohi sellel olla olemas dekrüpteerimise funktsiooni.

Veel peaks veenduma, et see funktsioon sõltumata opsüsteemist ja php (või ka sql) versioonist teeb alati sama hashi. Muidu on peale andmebaasi kolimist jama majas.
RE: Parooli krüpteerimine
Postitaja: andris 2015-04-10 17:05:40
MD5, SHA1 jne ei loeta enam ammu turvalisteks. Lisaks peab käsitsi salt'i majandama jne. Pigem tasuks kasutada spetsiaalselt paroolide jaoks mõeldud räsifunktsioone nagu bcrypt, pbkdf2, scrypt vms. Näiteks PHP 5.5+ puhul on bcrypt tugi juba ka sisse ehitatud (vt. PASSWORD_BCRYPT http://php.net/manual/en/function.password-hash.php).
RE: Parooli krüpteerimine
Postitaja: Parool 2015-04-12 00:26:24
Kas midagi sellist?

<?php
session_start();
?>
<form method="post" action="">
<div>
<label for="kasutajanimi">Kasutajanimi</label>
<input type="text" name="kasutajanimi" id="kasutajanimi">
</div>
<div>
<label for="parool">Parool</label>
<input type="password" name="parool" id="parool">
</div>
<input type="submit" name="submit" value="Logi">
</form>
<?php

if(isset($_POST['submit'])){

$errors = array();


if(empty($_POST['kasutajanimi'])){
$errors[] = "Sisesta oma kasutajanimi";
}else{
$kasutajanimi = $mysqli->real_escape_string($_POST['kasutajanimi']);
}

if(empty($_POST['parool'])){
$errors[] = "Sisesta oma parool";
}else{
$parool = trim($_POST['parool']);
}

if (empty($errors)) {
$sql = "SELECT * FROM kasutajad WHERE kasutajanimi = '$kasutajanimi'";
$result = $mysqli->query($sql);
if ($result->num_rows === 1) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (password_verify($parool, $row['parool'])) {
$_SESSION['kasutajanimi']['kasutajanimi'] = $row['kasutajanimi'];
header("Location:esileht.php");
}else{
$errors[] = "Kasutajanimi või parool on valed!";
}
}else{
$errors[] = "Kasutajanimi või parool on valed!";
}
}
}

?>
RE: Parooli krüpteerimine
Postitaja: Parool 2015-04-12 00:41:15
Mis on selle viga, et ei logi sisse, kui panna õige parool ja kontonimi? Ütleb kohe errori

<?php $teade= '';
if(isset($_SESSION['kasutajanimi'])){ header('Location: esileht.php'); }
if(isset($_POST['nupp']))
{
if(empty($_POST['Kasutajaimi']) || empty($_POST['KasutajaPW']))
{
$teade= 'Teil jäi mingi lahter täitmata';
} else {
$KasutajaNimi = $_POST['Kasutajanimi'];
$Aparool = $_POST['KasutajaPW'];
$Oparool = md5($Aparool);
$Konto = mysql_query("SELECT * FROM kasutajad WHERE kasutajanimi='$KasutajaNimi' and parool='$Oparool'");
if(mysql_num_rows($Konto) > 0)
{
$row = mysql_fetch_assoc($Konto);
$_SESSION['kasutajanimi'] = $KasutajaNimi;
header('Location: avaleht.php');
} else {
$teade = 'Te sisestasite vale parooli või kasutajanime.';
}
}
} ?>
RE: Parooli krüpteerimine
Postitaja: heh 2015-04-12 05:54:31
session_start(); Puudu ülevalt
RE: Parooli krüpteerimine
Postitaja: Parool 2015-04-12 15:33:08
TSITEERITUD:
session_start(); Puudu ülevalt

Isegi sellega ei tuvasta.

Kas sisselogimisel automaatselt krüpteerib parooli või peab ise mingi generaatori abil?
RE: Parooli krüpteerimine
Postitaja: ise php 2015-04-12 17:31:04
Kas sa ikka andmebaasi ka krüpteeritud parooli salvestasid? Või muutsid koodi krüpteerimise ainult sisselogimise osas?
Automaatselt ei tehta midagi $Oparool = md5($Aparool); see jupp teebki sinu sisestatud paroolist md5 krüpteeringu, sarnane asi peab olema ka kasutaja loomisel enne salvestust muidu ei saagi ju logida ja pole ka mingit mõtet krüpteerimisel kui andmepaasis on nähtav kirja "minuparool" ja sisestad "minuparool" krüpteerid ja saad mingi "2jn4523iuh3i45o2i3h423o5ih" stringi mis ei kattu ju
RE: Parooli krüpteerimine
Postitaja: Parool 2015-04-13 00:48:08
TSITEERITUD:
Kas sa ikka andmebaasi ka krüpteeritud parooli salvestasid? Või muutsid koodi krüpteerimise ainult sisselogimise osas?
Automaatselt ei tehta midagi $Oparool = md5($Aparool); see jupp teebki sinu sisestatud paroolist md5 krüpteeringu, sarnane asi peab olema ka kasutaja loomisel enne salvestust muidu ei saagi ju logida ja pole ka mingit mõtet krüpteerimisel kui andmepaasis on nähtav kirja "minuparool" ja sisestad "minuparool" krüpteerid ja saad mingi "2jn4523iuh3i45o2i3h423o5ih" stringi mis ei kattu ju

Ei ole, kuna algaja, ei tea neid asju. Sul mingit meili on, võtaks ühendust.
RE: Parooli krüpteerimine
Postitaja: geo__ 2015-04-13 09:07:46
TSITEERITUD:

Ei ole, kuna algaja, ei tea neid asju. Sul mingit meili on, võtaks ühendust.

Siis pead tegema scripti mis:
Võtab andmebaasist parooli (krüptimata)
Krüptid antud parooli
ja salvestad andmebaasi tagasi.

Sujuva ülemineku huvides soovitaks krüptitud paroolid salvestada eraldi. Hiljem kui kõik töötab võid krüptimata paroolid andmebaasist kustutada.

Ja nagu mainitud, peaks uue kasutaja loomisel kohe parooli krüptima (ehk andmebaasi salvestad krüptitud parooli)
RE: Parooli krüpteerimine
Postitaja: Tarkur 2015-04-13 10:53:49
Mitte, et krüpteerimine ja räsi arvutamine sama asi on, aga algajale käib kah.
RE: Parooli krüpteerimine
Postitaja: andris9 2015-04-13 11:02:59
md5 räsi kasutamine on sisuliselt sama hea kui üldse mitte räsi kasutada. Saltimata md5 räside puhul aitab dictionary attack ning salditud puhul arvutatakse kollisioon. Kui kindlasti peab vanu räsialgoritme kasutama, siis minimaalselt võiks olla sha-1, kuigi ka see on tänaseks moraalselt aegunud ja seda tuleks vältida. Vähemalt ei ole see nii triviaalselt murtav kui md5.
RE: Parooli krüpteerimine
Postitaja: lk_ 2015-04-13 11:44:53
empty($_POST['Kasutajaimi']) <-- kala paistab olevat muutujanimes ???

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.091099023819