PDA

View Full Version : دلیل MD5 کردن نام کاربری چیست؟



abbas3zaar
جمعه 28 اسفند 1394, 09:30 صبح
سلام من یک سورس دارم اوومده در قسمت لاگین این کارو کرده:




$_SESSION['operator_login'] = md5($_POST['username']);
$_SESSION['operator_loginname'] = base64_encode($_POST['username']);



چرا md5 کرده؟
و اینکه خط دوم base64_encode روی $_POST['username'] چه کاری انجام میده؟

rezaonline.net
جمعه 28 اسفند 1394, 19:38 عصر
طرف اومده تخیلات خودشو پیاده کرده
چیه این آخه :لبخند:

Farshid007
جمعه 28 اسفند 1394, 19:50 عصر
طرف اومده تخیلات خودشو پیاده کرده
چیه این آخه :لبخند:
خخخخخخخخ دقیقن
md5 که برای هش کردنه بدون بازگشت هم هست
base 64 هم برای تبدیل به کد های باینری که کاربرد آنچنانی نداره فکر کنم
اخه چ دلیلی داره اینارو تو نشست بزاریم
مثلن خواسته با اینکارش امنیتو ببره بالا:قهقهه::قهقهه:
این دوستمون خیلی خوب گفتش:لبخند:

abbas3zaar
شنبه 29 اسفند 1394, 08:05 صبح
طرف اومده تخیلات خودشو پیاده کرده
چیه این آخه :لبخند:


خخخخخخخخ دقیقن
md5 که برای هش کردنه بدون بازگشت هم هست
base 64 هم برای تبدیل به کد های باینری که کاربرد آنچنانی نداره فکر کنم
اخه چ دلیلی داره اینارو تو نشست بزاریم
مثلن خواسته با اینکارش امنیتو ببره بالا:قهقهه::قهقهه:
این دوستمون خیلی خوب گفتش:لبخند:

:لبخند: ، خب پس حتما توهمی بوده! گفتم شاید اهداف خاصی داره! تازه اومده بود پسورد دریافتی از کاربر موقع لاگین رو دو بار MD5 کرده گذاشته توی متغییر! :قهقهه:

khanlo.javid
شنبه 29 اسفند 1394, 12:26 عصر
نمیدونم شاید اینم یه جور تامین امنیته ، :متعجب::قهقهه: ولی خدایی واقعا توهمی کار کرده ، نمیدونم MD5 username چه سودی میتونه داشته باشه یعنی با این کار کلا روش های تامین امنیتو برده زیر سوال در هر صورت موفق باشه ایشالا .

stackprogramer
شنبه 29 اسفند 1394, 12:42 عصر
دوستان ،شاید برای این یوزنیم را هش کرده،که اگه یک ادم اومد کوکی های روی یک مرورگر را مشاهده کرد، یا حالتی که دیتابیس را به هرطریقی دست یک هکر افتاد،نام کاربری طرف را ندونه،حداقل در اونمرحله اول phishing نام کاربری تا ابد بمونه.دوستان این فقط نظر بنده بود حتما استادان درست می فرمایند.
موفق باشید

khanlo.javid
شنبه 29 اسفند 1394, 13:36 عصر
دوستان ،شاید برای این یوزنیم را هش کرده،که اگه یک ادم اومد کوکی های روی یک مرورگر را مشاهده کرد، یا حالتی که دیتابیس را به هرطریقی دست یک هکر افتاد،نام کاربری طرف را ندونه،حداقل در اونمرحله اول phishing نام کاربری تا ابد بمونه.دوستان این فقط نظر بنده بود حتما استادان درست می فرمایند.
موفق باشید


دوست عزیز اگه دقت کنید داره داخل session ذخیره میکنه یعنی کار کاملا بیهوده.

Farshid007
شنبه 29 اسفند 1394, 16:22 عصر
چ دلیل داره که یوزر نیمو بکنیم تو سشن آخه میتونیم ایدی اون یوزرو بکنیم تو سشن که اگه خدای نکرده سشنو هم تونستن ببینن ( که اونم امکان پذیر نیست به همین راحتیا ) با داشتن ی عدد که کاری نمیشه کرد:لبخند:

abbas3zaar
شنبه 29 اسفند 1394, 18:09 عصر
دوستان ،شاید برای این یوزنیم را هش کرده،که اگه یک ادم اومد کوکی های روی یک مرورگر را مشاهده کرد، یا حالتی که دیتابیس را به هرطریقی دست یک هکر افتاد،نام کاربری طرف را ندونه،حداقل در اونمرحله اول phishing نام کاربری تا ابد بمونه.دوستان این فقط نظر بنده بود حتما استادان درست می فرمایند.
موفق باشید


دوست عزیز اگه دقت کنید داره داخل session ذخیره میکنه یعنی کار کاملا بیهوده.


چ دلیل داره که یوزر نیمو بکنیم تو سشن آخه میتونیم ایدی اون یوزرو بکنیم تو سشن که اگه خدای نکرده سشنو هم تونستن ببینن ( که اونم امکان پذیر نیست به همین راحتیا ) با داشتن ی عدد که کاری نمیشه کرد:لبخند:

موقع لاگین کاربر اون کدهای بالا رو گذاشته و اومده در Header.php اینجا Decode کرده و استفاده کرده. یعنی فقط اومده موقع لاگین هش کرده و بعد تو صفحات دیگه دیکد کرده.


$coded_username = $_SESSION['operator_loginname'];
$clear_coded_username = stripslashes($coded_username);
$operator_name = base64_decode($clear_coded_username);

abbas3zaar
شنبه 29 اسفند 1394, 18:49 عصر
بیشتر criypt() پیشنهاد شده توی اکثر سایت ها.
دقیقا میشه بگید چی گفته اینجا؟
من اینطور متوجه شدم: "الگوریتم هایی مانند md5 و sha1 از دیدگاه امنیتی پیشنهاد نمیشه که از این توابع برای هش کردن استفاده بشه و به آسانی میتونه توسط حملات شکسته بشه"
راستی این salt چیه؟ من چند تا پروژه دیدم یه فیلد هم توی جدول کاربران گذاشتن به اسم RandSalt یعنی چی؟




PHP comes with built-in hash algorithms such as MD5, SHA1 etc. However, from a security perspective, it's not recommended to use these functions to hash passwords as they can be easily broken via bruteforce attack using tools like Passwordpro.

It's better if you use salting as a way to secure your passwords. Below is an example:



$password = 'yourpassword';
$salt = 'randomstr!ng';
$password = md5($salt.$password);


An even better way of generating the salt is by hashing it first:



$password = 'yourpassword';
$salt = sha1(md5($password));
$password = md5($password.$salt);


The advantage is that this way the salt value is random and it changes for each password, making it nearly impossible to break.

stackprogramer
شنبه 29 اسفند 1394, 19:32 عصر
بیشتر criypt() پیشنهاد شده توی اکثر سایت ها.
دقیقا میشه بگید چی گفته اینجا؟
من اینطور متوجه شدم: "الگوریتم هایی مانند md5 و sha1 از دیدگاه امنیتی پیشنهاد نمیشه که از این توابع برای هش کردن استفاده بشه و به آسانی میتونه توسط حملات شکسته بشه"
راستی این salt چیه؟ من چند تا پروژه دیدم یه فیلد هم توی جدول کاربران گذاشتن به اسم RandSalt یعنی چی؟.

سلام،md5,sha1 سرعت شکستنشون خیلی بیشتره،یعنی زمانی که طول می کشه برای broute forece کردنش لازمه خیلی پایین تره نسبت به رمزنگاری های دیگه
برو لینک زیر را ببین یک سوپر کراکر که از 25 تا چی پی یو استفاده می کنه
350 billion-guess-per-second speed
http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/
برای اینکه کار broute force کردن را یک کمی سخت کنند می ایند از هشینگ ترکیبی مثلا دوتا md5 پشت سرهم
یا مثلا MD5MD5MD5sha1
که زمان بروت فورس را زیاد می کنه به این کار اصطلاحا salt hash می گویند.

اون که راندم داخل کلمه است ساختار راندم داخلش می یارن.

اون هایی که در بالا توصیه می شه رمزنگاری های که هش کردنشون یک دیلی بیشتری دارد.بروت فورس کردن احتمالخیلی خیلی ... نزدیک صفر می شود.

0xEHSAN
سه شنبه 03 فروردین 1395, 07:45 صبح
تا کد کامل نباشه نمیشه اظهار نظر کرد حتما منظوری داشتن از این کارشون چونکه هیچ برنامه نویس حتی آماتور هم این کارو نمیکنه