PDA

View Full Version : عبارت منظم برای پسورد



prans.info
سه شنبه 14 مرداد 1393, 15:00 عصر
سلام وقت بخیر
یک عبار منظم مناسب برای چک پسورد پیدا کردم فقط یه چیز کم داره که هر جوری اضافه می کنم کار نمی کنه اونم اینه که کاراکتر های " , ' و اسپیس غیر مجاز باشه :

preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password);

نیلوفر66
سه شنبه 14 مرداد 1393, 15:02 عصر
کجا و چطوری استفاده میکنی؟

prans.info
سه شنبه 14 مرداد 1393, 15:07 عصر
کجا و چطوری استفاده میکنی؟
تویه عضویت سایت دارم استفاده می کنم بعدا هم برای بخش تغییر رمز عبور و...


function c_password($password){

return preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password);}
فقط میخوام وقتی " ' و اسپیس تویه رمز باشه false برگردونه
[^'" ] اینو هر جا گذاشتم جواب نداد

2undercover
سه شنبه 14 مرداد 1393, 15:09 عصر
سلام وقت بخیر
یک عبار منظم مناسب برای چک پسورد پیدا کردم فقط یه چیز کم داره که هر جوری اضافه می کنم کار نمی کنه اونم اینه که کاراکتر های " , ' و اسپیس غیر مجاز باشه :

preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password);

به نظر من دلیلی وجود نداره که کاراکتر خاصی رو توی گذرواژه ها ممنوع بکنید.

prans.info
سه شنبه 14 مرداد 1393, 15:13 عصر
به نظر من دلیلی وجود نداره که کاراکتر خاصی رو توی گذرواژه ها ممنوع بکنید.
من با هش کردن مخالفم اسکریپت و سرور سایت باید ایمن نوشته بشه دیگه هش کردن نیمخواد
معنی نداره از ترس اینکه یه روزی دیتابیس دست هکر بیافته رمز یوزر ها فاش بشه بیای هش کنی (میدونم هش کردن مزایای دیگه ای هم داره ...)
به هر حال الان میخوام این کاراکتر ها رو محدود کنم لطفا راهنمایی کنید

tux-world
سه شنبه 14 مرداد 1393, 15:14 عصر
وقتی هم که داره hash میشه آره دیگه نیازی نیست که بررسیش کنید یا اینکه دلیل خاصی داشته باشید

ali@hmadi
سه شنبه 14 مرداد 1393, 15:23 عصر
من با هش کردن مخالفم اسکریپت و سرور سایت باید ایمن نوشته بشه دیگه هش کردن نیمخواد
معنی نداره از ترس اینکه یه روزی دیتابیس دست هکر بیافته رمز یوزر ها فاش بشه بیای هش کنی (میدونم هش کردن مزایای دیگه ای هم داره ...)
به هر حال الان میخوام این کاراکتر ها رو محدود کنم لطفا راهنمایی کنید

باید شما رمز کنید رمز هاتونو

اما کد درخواستی :


$password="f,,'#,";


$patterns = array();
$patterns[0] = "/'/";
$patterns[1] = '/"/';
$patterns[2] = '/,/';

echo preg_replace($patterns, '', $password);

prans.info
سه شنبه 14 مرداد 1393, 15:30 عصر
باید شما رمز کنید رمز هاتونو

اما کد درخواستی :


$password="f,,'#,";


$patterns = array();
$patterns[0] = "/'/";
$patterns[1] = '/"/';
$patterns[2] = '/,/';

echo preg_replace($patterns, '', $password);

من برای preg_match میخوام میخوام اون چند کاراکتر رو اینجا محدود کنم :

preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password);
البته میشه str_replace یا preg_replace استفاده کرد و اون کاراکتر هایی رو که من گفتم رو حذف کرد و تویه دیتابیس ذخیره کرد ولی در هنگام ورود هم همین کار رو مجددا انجام داد و راه درستش به نظر من این نیست ....

ali@hmadi
سه شنبه 14 مرداد 1393, 15:39 عصر
من برای preg_match میخوام میخوام اون چند کاراکتر رو اینجا محدود کنم :

preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password);
البته میشه str_replace یا preg_replace استفاده کرد و اون کاراکتر هایی رو که من گفتم رو حذف کرد و تویه دیتابیس ذخیره کرد ولی در هنگام ورود هم همین کار رو مجددا انجام داد و راه درستش به نظر من این نیست ....


echo preg_match("|[,'\"]|s", $password);

داغه داغه , الان نوشتمش :)

prans.info
سه شنبه 14 مرداد 1393, 15:49 عصر
echo preg_match("|[,'\"]|s", $password);

داغه داغه , الان نوشتمش :)
خیلی ممنون
ترکیب کردن بلد نیستم اینطوری کردم ::لبخند:


function c_password($password){

if(!preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password)){
return false;
}else if(preg_match("|[,'\"]|s", $password)){
return false;
}
return true;
}

ali@hmadi
سه شنبه 14 مرداد 1393, 16:03 عصر
خیلی ممنون
ترکیب کردن بلد نیستم اینطوری کردم ::لبخند:




if(!preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password)){
return false;
}



:لبخندساده:

این کد شما میگه اگه حروف بزرگ و کوچیک و عدد بود و بین 6 تا 64 کاراکتر بود ...

خب جای اینکار که باید @#$ و ... را در پسوردت فاکتور بگیرید ... از کد زیر که الان نوشتم استفاده بکیند :



if(preg_match("|[,'\"]|s", $password) or strlen($password)<6 or strlen($password)>65 ){
return false;
}


که فکر کنم بهینه تر از کد بالای شما باشه :)


موفق باشید

2undercover
سه شنبه 14 مرداد 1393, 16:16 عصر
من با هش کردن مخالفم اسکریپت و سرور سایت باید ایمن نوشته بشه دیگه هش کردن نیمخواد
معنی نداره از ترس اینکه یه روزی دیتابیس دست هکر بیافته رمز یوزر ها فاش بشه بیای هش کنی (میدونم هش کردن مزایای دیگه ای هم داره ...)
به هر حال الان میخوام این کاراکتر ها رو محدود کنم لطفا راهنمایی کنید

فقط بحث هک شدن سرور توسط هکر نیست وقتی شما رمز رو خام ذخیره می کنید. مدیر سایت می تونه رمز کاربرا رو ببینه که از لحاظ حریم خصوصی کاربر این درست نیست.

prans.info
سه شنبه 14 مرداد 1393, 16:22 عصر
:لبخندساده:

این کد شما میگه اگه حروف بزرگ و کوچیک و عدد بود و بین 6 تا 64 کاراکتر بود ...

خب جای اینکار که باید @#$ و ... را در پسوردت فاکتور بگیرید ... از کد زیر که الان نوشتم استفاده بکیند :



if(preg_match("|[,'\"]|s", $password) or strlen($password)<6 or strlen($password)>65 ){
return false;
}


که فکر کنم بهینه تر از کد بالای شما باشه :)


موفق باشید
خودم اولش اینطوی نوشته بودم ولی اونطوری نمی تونستم چک کنم که حتما حروف و عداد باشه که امنیت رمز بالا باشه ...

prans.info
سه شنبه 14 مرداد 1393, 16:23 عصر
فقط بحث هک شدن سرور توسط هکر نیست وقتی شما رمز رو خام ذخیره می کنید. مدیر سایت می تونه رمز کاربرا رو ببینه که از لحاظ حریم خصوصی کاربر این درست نیست.
مدیر سایت خودمم :لبخند:
رمز خام رو هر وقت خواستی میتونی هش کنی ...

prans.info
سه شنبه 14 مرداد 1393, 16:38 عصر
نه

هش کردن برای امنیت سایت هست

شما که بدون رمز به پیامها و پست ها دسترسی دارید ...

فوقش می خواهید وارد اکانت کاربر بشید ... هشی که می دونید از چه رمزی بدست آمده جایگزین هش کاربر بکیند و بعد که کارتون تمام شد همون هش قبلی را جایگزین رمز کاربر بکیند که کاربر بتونه وارد بشه ...
جدا از این بحث ها شما خودت هش با کدون تابع رو پیشنهاد می کنی ؟ (نگو md5 که کلامون ...:لبخند:)

ali@hmadi
سه شنبه 14 مرداد 1393, 16:54 عصر
کدت دو تا if گرفته الکی :


function c_password($password){

if(!preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password) or preg_match("|[,'\"]|s", $password)){
return false;
}else{return true;}
}


هر چی کدت خلاصه تر باشه بهتره ...

هش ؟ , من از روشهای مختلفی استفاده میکنم و با روش نمک و فلفل و ادویه کاری خوشم نمیاد :)

مثلا :



$password= md5(substr(md5($password),5). substr(md5($user),3))

prans.info
سه شنبه 14 مرداد 1393, 16:56 عصر
کدت دو تا if گرفته الکی :


function c_password($password){

if(!preg_match('/^(?=^.{6,64}$)((?=.*[A-Za-z0-9])(?=.*[a-z]))^.*$/', $password) or preg_match("|[,'\"]|s", $password)){
return false;
}else{return true;}
}


هر چی کدت خلاصه تر باشه بهتره ...

هش ؟ , من از روشهای مختلفی استفاده میکنم و با روش نمک و فلفل و ادویه کاری خوشم نمیاد :)

مثلا :



$password= md5(substr(md5($password),5). substr(md5('نام کاربر'),3))

قبلا از نمک و فلفل استواده کردم ولی روش هش کردن جدید که قوی باشه چیه ؟

prans.info
سه شنبه 14 مرداد 1393, 17:09 عصر
چند ساعته درگیر عبارت منظم هستم هر جور هم می نویسم کار نمی کنه :|
این رو چطوری باید بنویسم ؟


if(preg_match('|^[A-Z0-9]|^[a-z0-9]', $password)){

return true;

}else{

return false;

}

ورودی اگه حروف کوچیک و اعداد بود یا حروف بزرگ و اعداد قبول کنه در غیر اینصورت false بده
برای چک کردن پسورد هست و باید جدا جدا نوشته بشه ...

ali@hmadi
سه شنبه 14 مرداد 1393, 17:11 عصر
قبلا از نمک و فلفل استواده کردم ولی روش هش کردن جدید که قوی باشه چیه ؟

هر چی ابتکاری تر باشه بهتره ...

مثل کدی که نوشتم ...

فقط باید اختصاصی باشه ...

ali@hmadi
سه شنبه 14 مرداد 1393, 17:30 عصر
چند ساعته درگیر عبارت منظم هستم هر جور هم می نویسم کار نمی کنه :|
این رو چطوری باید بنویسم ؟


if(preg_match('|^[A-Z0-9]|^[a-z0-9]', $password)){

return true;

}else{

return false;

}

ورودی اگه حروف کوچیک و اعداد بود یا حروف بزرگ و اعداد قبول کنه در غیر اینصورت false بده
برای چک کردن پسورد هست و باید جدا جدا نوشته بشه ...


preg_match('/[^A-Z0-9a-z\s-]/i', $password);

درشرط جایگذاری کنید ...

2undercover
سه شنبه 14 مرداد 1393, 18:27 عصر
هر چی ابتکاری تر باشه بهتره ...

مثل کدی که نوشتم ...

فقط باید اختصاصی باشه ...

http://barnamenevis.org/showthread.php?454234-%DA%86%D8%B1%D8%A7-%D9%86%D8%A8%D8%A7%DB%8C%D8%AF-%D8%AF%D8%B1-%D8%B2%D9%85%DB%8C%D9%86%D9%87%D8%A1-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D9%88-%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AE%D9%88%D8%AF%D9%85%D8%A7%D9%86-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D8%A7%D8%AE%D8%AA%D8%B1%D8%A7%D8%B9-%DA%A9%D9%86%DB%8C%D9%85!
http://barnamenevis.org/showthread.php?454069-bcrypt-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%87%D8%B4-%D9%BE%D8%B3%D9%88%D8%B1%D8%AF-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C