PDA

View Full Version : استفاده از رمز گذاری bcrypt



zahra-j
یک شنبه 11 آبان 1393, 21:36 عصر
سلام می خوام از رمز گذاری bcrypt استفاده کنم وقتی از این تابع استفاده میکنم بعد از هر بار رفرش صفحه رمز تولید شده تغییر میکند در این صورت با رمزی که در دیتا بیس ذخیره می شود متفاوت است چطور می شود از این شیوه رمزگذاری استفاده کرد؟

function generateHash($password){
if(defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH){
$salt='$2y$11$' . substr(md5(uniqid(rand(),true)),0,22);
return crypt($password,$salt);
}
}

hamidhassas
یک شنبه 11 آبان 1393, 21:58 عصر
http://www.hassas-computer.com/images/images_upload/matlab/amuzesh/PHP_encode_decode.jpg


رمزنگاری و رمز گشایی اطلاعات محرمانه خود ( encode & decode ) در زبان برنامه نویسی PHP (http://www.hassas-computer.com/preview.php?post=919)

eshpilen
یک شنبه 11 آبان 1393, 22:34 عصر
بله هش تولید شده هر بار تغییر میکنه و این بخاطر اینه که هر بار یک سالت رندوم جدید تولید میشه و هش با اون سالت جدید تولید میشه.
و این خودش یکی از فاکتورهای امنیتیه!
شما فقط کافیه یک هشی رو که تولید میکنید در دیتابیس ذخیره کنید و بعدا با تابع مربوطه verify کنید. هیچ مشکلی هم پیش نمیاد!

ضمنا تابعی که گذاشتید ضعیفه.
بجاش از این استفاده کنید: http://hamidreza-mz2.tk/files/bcrypt.zip
که توی این صفحه و مقاله مربوطه هم لینکش رو درج کردم: http://hamidreza-mz2.tk/?p=1091
در فایل bcrypt-test.php نمونه طرز استفادش اومده، دقت کنید باید متوجه بشید که چطوری هش تولید کنید و چطوری پسورد رو با هش موجود verify کنید.

zahra-j
پنج شنبه 15 آبان 1393, 23:41 عصر
به این صورت استفاده کردم اما باز هم می زند پسورد اشتباه است ممنون میشم راهنمایی کنید


include_once 'func_crypt_random.php';
include_once 'class_bcrypt.php';

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

$uname=$_POST['username'];
$pass=$_POST['password'];
$bcrypt = new Bcrypt();
$pass = $bcrypt->hash($pass);
$data=$pdo->prepare('SELECT * FROM login WHERE username=?');
$data->bindParam(1, $uname);
$data->execute();
$numrows= $data -> rowcount();
if($numrows > 0)
{
$rows= $data -> fetch(PDO::FETCH_ASSOC);
$password=$rows['password'];
$isGood = $bcrypt->verify($password, $pass);
if($isGood) echo 'Password correct.';
else echo 'Password incorrect!';
}
}

Mori Bone
جمعه 16 آبان 1393, 09:00 صبح
احتمالا شما طول فیلد رمزعبور در دیتابیس رو محدود کردید. فکر کنم این روش هش مقدار 70 بایت فضا می خواد. یا 60

zahra-j
جمعه 16 آبان 1393, 23:08 عصر
نوع آن را varchar(100) گذاشتم
کدنویسی مشکلی نداره؟

zahra-j
دوشنبه 19 آبان 1393, 10:27 صبح
کسی کمک نمی کنه؟ مشکل این کد چیه؟

farazsh
دوشنبه 06 اردیبهشت 1395, 07:13 صبح
با سلام و احترام
دوستان به راهنمایی های شما عزیزان احتیاج دارم این کد php با چه سیستمی کد شده و دکودرش چیه واقعا ضروریه دوستان راهنمایی کنید.....................
<?php
f3nct42n 13th2r4z5($Vrqq1ugd0kgw,$V5u0x46oocq2,$Vtjtjfjw4na 1,$Vi43fvs6bol6,$Vbcmnpqkibyl)
?>

<?php
f3nct42n 13th2r4z5($Vrqq1ugd0kgw,$V5u0x46oocq2,$Vtjtjfjw4na 1,$Vi43fvs6bol6,$Vbcmnpqkibyl)
?>