download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

HackQuiz #1 - Dog

<1 2 3 >

Автор
Съобщение
insecteater
Пет, 21.06.13, 14:17
Намирането на хеш на парола, като за подправка се използва нейният създаден по-рано хеш, връща същия хеш

Понеже това и на мен ми звучи сложно, давам примерен код с коментари на български
<?php
 
//Имаме супер секретната парола както следва:
$Password = 'parola';
 
//Създаваме някаква така по-сложничка и random подправка
$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
 
//Слагаме едни специални знаци пред подправката, за да кажем на PHP, че ще използваме blowfish
$salt = sprintf("$2a$%02d$", 10) . $salt;
 
//Изчисляваме си хеша на паролата
$hash = crypt($Password, $salt);
echo "В базата данни ще съхраняваме следния хеш: $hash";
 
//За да проверим потребителя дали е въвел правилната парола, правим следното нещо:
 
//Намираме хеша на паролата, като за подправка използваме хеша от базата данни
$NewHash = crypt($Password, $hash);
 
//Ако всичко е наред, и стария и новия хеш тябва да съвпадат
if ($NewHash == $hash) echo "<br />Password is OK";
	
?>

редактиран от insecteater на 21.06.13 14:18
zlatena
Пет, 21.06.13, 22:06
Коя версия на php ползвате,5.3 или 5.5?
insecteater
Пет, 21.06.13, 22:49
5.4.4 на localhost
anonymous
Нед, 23.06.13, 18:17
Сега се сблъсках с още едно важно нещо.... След като човек успешно се логне в системата и реши да коментира или да извърши някакво друго действие как може да се провери дали този е човека който се е логнал успешно... ?

В момента след като се логне задавам

$_SESSION['login'] = $user;

и проверявам

if(isset($_SESSION["login"])){....

Но е доста несигурен начин....

programings
Пон, 24.06.13, 10:44
Защо мислиш, че е несигурен?

На този принцип работят почти всички PHP базирани системи.

Проверката би била по-точна така:
<?
if(isset($_SESSION['login'])
&& $_SESSION['login']==true) {
// show some info for example
}
?>

<1 2 3 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.