تالار گفتمان nCIS.ir

نسخه‌ی کامل: رمزنگاری بسیار مناسب برای استفاده در ساخت یک اسکریپت استاندارد
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
میخوام اسکریپتی که میسازم از نظر امنیت در حد استاندارد باشه .
برای رمز نگاری پسورد ها و یا اطلاعات دیگه یک اسکریپت , بهترین روش موجود چیه؟
از md5 اینطور که معلومه دیگه استفاده نمیکنن

تو سرچ های مختلف روش های مختلفی رو دیدم :

+ مثلا یکی میگفت با استفاده از تابع crypt یک هش تصادفی ( برای هر کاربر ) استفاده کنیم و هش هر کاربر رو تو دیتابیس ثبت کنیم تا برای بازیابی اونو موقع ورود کاربر ازش بشه استفاده کرد و پسورد رو برگردوند.

+ یکی دیگه میگفت از همون تابع crypt استفاده کنیم ولی تو دیتابیس ثبت نکنیم چون خطر داره و درواقع با ثبت کردن هش تو دیتابیس دیگر فرقی با تابع md5 نمیکنه چون هکر که به دیتابیس دسترسی پیدا کنه هش هارو تبدیل میکنه .

+ یکی دیگه میگفت بیایم از تابع crypt استفاده کنیم ولی با این تفاوت که هش , ثابت باشه و خودمون تولید کنیم .

آقای شهرکی و دوستانی که در این زمینه به صورت حرفه ای فعالیت میکنند . میخواستم ازتون کمک بگیرم که بهترین روش موجود چیه؟ از کدوم تابع استفاده کنم و چطور ازش استفاده کنم ؟میخوام یک اسکریپت استاندارد باهاش در سطح وب تولید کنم که به همین راحتی هک نشه .

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

تشکر از راهنماییتون
(02-02-1395، 12:27 ب.ظ)?php? نوشته: [ -> ]+ یکی دیگه میگفت از همون تابع crypt استفاده کنیم ولی تو دیتابیس ثبت نکنیم چون خطر داره و درواقع با ثبت کردن هش تو دیتابیس دیگر فرقی با تابع md5 نمیکنه چون هکر که به دیتابیس دسترسی پیدا کنه هش هارو تبدیل میکنه .

اول اینکه تو دیتابیس ذخیره نکنیم کجا ذخیره کنیم؟؟؟
بعدش هکری که به دیتابیس دسترسی پیدا کنه که نباید بتونه حالا که تونست
ما واسه همین پسورد هارو هش میکنیم که غیر قابل برگشت هست...


بهتره یکی از این پکیج ها استفاده کنید و یا الگو بگیرید

https://github.com/cartalyst/sentinel
https://cartalyst.com/manual/sentinel/2.0#bcrypt-hasher


https://github.com/panique/huge
https://github.com/panique/huge/wiki/Whi...e-used-%3F
این واسه هش پسورد: http://hamidreza-mz.tk/?p=1091

واسه رمزگذاری برگشت پذیر هم این: http://hamidreza-mz.tk/?p=566
دارم از sha512 , sha256 استفاده میکنم برای رمزنگاری .
ال ان میخوام بین crypt و sha512 و sha256 ببینم کدومش الگوریتم امن تریه . شنیدم sha1 داره از بین میره و بلای md5 سرش میاد و مجموعه( sha2 ( sha256 ,sha512 sha384 ,sha224 بهترین انتخاب هستن .

همچنین در مورد bcrypt هم تحقیق کردم و گویا الگوریتم بسیار مناسبیه . ولی در مورد کن بودنش مقالاتی هم خوندم .

به این نتیجه رسیدم که از sha512 یا sha256 استفاده کنم برای رمز نگاری .

نظرتون چیه ؟ آایا الگوریتم های امنی هستن این دوتا ؟
برای استفاده از sha512 این سایت رو خوندم و از تابع زیر استفاده کردم و جواب هم داد .
http://www.sha2-generator.info/en/php-sha2
http://php.net/manual/en/function.hash-algos.php

echo hash('sha512', 'Hello World');
کندبودن bcrypt عمدی هست و بخاطر جلوگیری از حملات Bruteforce عمداً کند شده. این موضوع برای کاربران عادی مشکل خاصی ایجاد نمیکنه چون معمولاً یکبار لاگین میکنن و بعد تا وقتی مرورگر رو نبستن یا از سایت خارج نشدن، دیگه با رمزنگاری مربوطه کاری ندارن. درمورد رمزنگاری خیلی از سایتها متأسفانه زیادی داره سختگیری میشه. شما همون md5 رو هم اگه با salt و pepper و رمزنگاری چندباره قدرتمند کنید (و یا با sha1 ترکیب کنید) میتونه کافی باشه.