PDA

View Full Version : سوال: مشکل با md5



matrixhassan
پنج شنبه 05 بهمن 1391, 10:33 صبح
با سلام

من پسورد تمام یوزرهامو با md5 کد می منم و ذخیره می کنم .

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

ممنون میشم راهنمایی کنید.

siavashsay
پنج شنبه 05 بهمن 1391, 10:50 صبح
مشکل همینجاس دیگه !
شما اولا نباید به md5 تکیه کنی ! sha1() و یک سری از توابع دیگه 160bit هستند و به مراتب بهتر از md5 هستند !
اما خوب در هر صورت ! شما برای SALT کردن پسورد باید در موقع ثبت نام کاربر یک رشته رو به صورت رندم به پسورد اضافه کرده و در دیتابیس ذخیره کنید و بعد در موقع لاگین کردن اون رو با پسورد کاربر اذغام و پسورد نهایی رو خارج کنید !
اینکه الان به این فکر افتادید دیگه فکر نکنم گزینه خوبی باشه !
چون شما نمیتونید md5 رو برگردونید و دوباره مراحل بالا رو طی کنید !
باز هم نظر بقیه دوستان مهمه ! :)

coder.php
پنج شنبه 05 بهمن 1391, 11:20 صبح
فیلد نام کاربری، ایمیل یا هر چیز دیگه ای رو میتونی با پسورد md5 شده کاربر دوباره md5 کنی و بجای فیلد پسورد تو دیتابیس ذخیره کنی

برای لاگین کردن کاربر هم ابتدا پسورد رو md5 کن و بعد هر کاری که تو مرحله قبل انجام دادی رو انجام بده.

matrixhassan
پنج شنبه 05 بهمن 1391, 11:40 صبح
با تشکر من اینکار کردم ولی سایت اون کد رمز شده دوم رو کم کدگشایی کرد .

این آدرس همون سایته میتونید خودتون امتحان کنید .
http://www.md5decrypter.co.uk/

Mohsen.
پنج شنبه 05 بهمن 1391, 12:15 عصر
اینو ببینید:
---------------
با Bcrypt
یادگرفتن درباره md5 و sha1 و salt برای فهم آنچه که مورد نیاز ما برای ذخیره سازی امن هست خوب است. اما برای اجرای شدید امنیت باید از تکنیک Bcrypt در hashing استفاده کنیم.
ما باید از یک الگوریتم استفاده کنیم که حمله کننده خیلی سخت بتواند آن را رمزگشایی کند و به راحتی بتوان از آن در اپلیکیشن ها استفاده کرد. اگر از Bcrypt استفاده کنیم لازم نیست دیگر salt را ذخیره کنیم.
مثال:


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

تابع بالا ابتدا ثابت CRYPT_BLOWFISH را چک میکند. اگر این قابلیت وجود داشت یک salt تولید میکنیم. Salt تولید شده باید با “$۲a$” یا “$۲y$” شروع شده باشد. برای اطلاعات بیشتر در این مورد به PHP Manual (http://www.php.net/security/crypt_blowfish.php)مراجعه کنید.

برای شناسایی کاربر نیز از تابع زیر استفاده میکنیم. در صورت درست بودن, این تابع یک را برمیگرداند.



function verify($password,$hashedPassword){
return crypt($password,$hashedPassword) == $hashedPassword;
}


متن کامل (http://aparnet.ir/206-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%87%D8%B4hash-%DA%A9%D8%B1%D8%AF%D9%86-%D9%BE%D8%B3%D9%88%D8%B1%D8%AF-%D8%AF%D8%B1-php)

matrixhassan
پنج شنبه 05 بهمن 1391, 12:21 عصر
با تشکر اما الان مشکل این نیست که مشکل اینه که من اونایی که پسوردشونو با md5 ذخیره کردم چطور عوض کنم ؟

Mohsen.
پنج شنبه 05 بهمن 1391, 12:30 عصر
خوب این روش امنیتش بهتره. گفتم بگم.

matrixhassan
پنج شنبه 05 بهمن 1391, 12:37 عصر
منم میدونم دوست عزیز .
اما حالا مشکل اینه که من پسوردهای کاربرارو با md5 ذخیره کردم و اگه الان بیام با این تابع که دادین عمل کنم معلومه که نمیتونن وارد بشن خوب.
الان میگم ایا راهی هست که من بتونم اون پسوردهارو یه طوری عوض کنم و با تابع بالا کدشون کنم و وقتی کاربر وارد میشه دیگه مشکلی پیش نیاد.

Reza1607
پنج شنبه 05 بهمن 1391, 13:06 عصر
به نظر من شما دو تا كار مي تونيد انجام بدين
1) در يه ساعت خاص كه سايت شما بازديد كننده كمي داره بياين و رمز ها رو اصلاح كنيد و الگوريتم جديد رو جايگزاري كنيد ( مشكلي كه اين روش داره اينه كه مجبوريد براي تمام كاربرها يه رمز پيش فرض قرار بدين كه هم مشكل امنيتي داره هم بايد يه جوري به كاربر بفهمونيد كه از رمز جديد استفاده كنه)
2) يه فيلد تو جدول يوزر ها اضافه كن و پيش فرض مقدار صفر رو قرار بده بعد به كاربرات بگو كه رمزش رو عوض كنند بعد هر كاربري كه رمز رو عوض كرد اين فيلد رو يك كن بعد موقع لاگين اول چك كن ببين اين فيلد جديد چه مقداري داره اگه يك بود از الگوريتم جديد براي تاييد هويت استفاده كن و اگر هم صفر بود مثل روال گذشته اين كار رو انجام بده

ravand
پنج شنبه 05 بهمن 1391, 14:05 عصر
با تشکر من اینکار کردم ولی سایت اون کد رمز شده دوم رو کم کدگشایی کرد .

این آدرس همون سایته میتونید خودتون امتحان کنید .
http://www.md5decrypter.co.uk/
نه اشتباه نکن داداش. این سایت و امثال اون یه سری بانک اطلاعاتی هستن که هکر ها از اون ها استفاده میکنن این سایت هم مثل یه فرهنگ لغت میمونه که پسوردها در اون ذخیره میشه. شما بیا این کدها رو توی همین سایتی که گفتی بزن 86318e52f5ed4801abe1d13d509443de مسلما چون کلمه ی ali هست و شناخته شده هست برات نشون میده ولی وقتی این کد رو bb9148d40c629d9ae5ba3007f73b56f8 که همون albdofg$ هست رو میزنی می نویسه پیدا نشد. پس باید پسورد شما همیشه چیزی باشه که عقل جن هم بهش قد نده :لبخند:

matrixhassan
پنج شنبه 05 بهمن 1391, 14:19 عصر
میدونم و معلم شد که md5 به تنهایی امن نیست و باید رمزهای که تا حالا وارد کردنو عوض کنم و این کاری بس دشوار خواهد بود :اشتباه:

Unique
پنج شنبه 05 بهمن 1391, 14:44 عصر
سه تا راه حل به نظر من هست :

1 - بیاین یک اسکریپت بنویسین که بیاد یک پسورد randome بسازه برای هر کاربر و براش ایمیل کنه ، اینطوری پسورد ها عوض میشوند و کاربران هم باید ایمیل را چک کنند تا پسورد جدید را بگیرند.
2 - بیاین یک فیلد Datetime بگذارین توی جدول کاربرا و با تاریخ امروز پرش کیند ، حالاهر کاربری که لاگین میکنه باید پسوردش را عوض کنه و با انجام این کار تاریخ اون فیلد هم عوض بشه که معلوم بشه پسورد عوض شده و بار دوم نیاز به این کار نباشه.
3 - بیاین از همین سایت استفاده کنید و md5 ها را بدین بهش براتون تبدیل کنه به اصلش ، اگه تونست خوب با الگوریتم جدید هش جدید بسازین اگه هم نه از روش یک یا دو استفاده بشه.

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

rezaonline.net
پنج شنبه 05 بهمن 1391, 16:13 عصر
یه راه حل دیگه ، md5 رو روی دور 4000 یا بیشتر بذارید .
البته در این مورد شما بذارید روی 3999 چون یه بار هش شده:چشمک:
بعد آلگوریتم رو برمبنای 4000 دور دوباره بنویسید .

کارتون رو راه می اندازه ، امنیتشم متوسط به بالاست

ravand
پنج شنبه 05 بهمن 1391, 21:25 عصر
یه راه حل دیگه ، md5 رو روی دور 4000 یا بیشتر بذارید .
این یعنی چی؟ میشه توضیح بدید؟

Mohsen.
پنج شنبه 05 بهمن 1391, 22:04 عصر
درست نیست که یک پسورد که هش شده رو دوباره به یک تابع دیگه بدیم هش بشه. البته اینو توی سایت phpmaster گفته بودند.

Tarragon
پنج شنبه 05 بهمن 1391, 22:14 عصر
فکر کنم این بدرتون بخوره:

<?php
function hashmd5($mm,$tt){
if(isset($mm,$tt) && $mm != null && is_numeric($tt)){
for ($i = 1; $i <= $tt; $i++) {
$mm = md5($mm);
};
return $mm;
}
else{return false;}
}
echo hashmd5('barnamenevis',400);//return 'ddc4ef14099dfe3050e9e69595684347'
و الان همون سایت واسه دیکه ddc4ef14099dfe3050e9e69595684347 [Not Found] رو می ده.

matrixhassan
پنج شنبه 05 بهمن 1391, 23:16 عصر
به نظر دوستان از روش بالا بهتر استفاده کنم یا از روش پایین .
کدام بهتر است ؟

rezaonline.net
جمعه 06 بهمن 1391, 10:31 صبح
درست نیست که یک پسورد که هش شده رو دوباره به یک تابع دیگه بدیم هش بشه.
توی کلاس phpass که یک کلاس قابل قبول هست و وروپرس هم برای هش کردن از اون استفاده میکنه دقیقا این کار انجام میشه البته + افزودن رشته رندم !
میتونی یه سوال هم توی انجمن آشیانه بپرسی که آیا هش پسور وردپرس قابل کرک شدن هست که اونام میگن نه:لبخند:

روی 4000 بذار غمت نباشه .

for($i=0;$i!=4000;$i++)
$hash = md5($hash);

Tarragon
جمعه 06 بهمن 1391, 10:46 صبح
البته آقا رضا فکر کنم یه فانکشن خوب اون بالا دادم.

AbiriAmir
جمعه 06 بهمن 1391, 11:35 صبح
راه حل اینه که شما کوئری زیر رو اجرا کنید:
UPDATE `usertable` SET `password` = sha1( `password` )
اینطوری همه پسورد هایی که md5 شدن الان sha1 میشن و دیگه قابل برگشت نیستن
حالا فقط کافیه تو سایتتون موقع لاگین به جای md5( $password) از sha1( md5 ($password)) استفاده کنید و خیالتون هم راحت باشه که امن امنه! ;)

ضمنا
تا اونجایی که به ذهن من میرسه 4000 بار md5 کردن زمان زیادی میبره و اصلا هم لازم نیست...
به نظر من کار بیهوده ای هست

Tarragon
جمعه 06 بهمن 1391, 13:19 عصر
خیلی زمانی نمی گیره الان 4000 بار کلمه barnamenevis رو کد کردم فقط 0.003536 ثانیه زمان گرفت.

rezaonline.net
جمعه 06 بهمن 1391, 13:45 عصر
چه عیبی داره دقیقا منظور هم همینه:چشمک:
دقت کن اگه بخوان کرک کنن و مثلا 100000 تا تست انجام بده کرکر بد بخت باید چه زجری بکشه

MMSHFE
جمعه 06 بهمن 1391, 15:04 عصر
این یعنی چی؟ میشه توضیح بدید؟
یعنی رمز کاربران الآن 1 بار هش شده، 3999 بار دیگه اون رو هش کنید (یک حلقه 3999 تایی بسازین و هربار، خروجی هش قبلی رو به تابع md5 بدین تا دوباره هش کنه) و بعد خروجی نهایی رو برای هر کاربر توی دیتابیس ذخیره کنید. از این به بعد هم هر کسی ثبت نام کرد، رمزش رو 4000 بار هش کنید و توی دیتابیس بگذارین. هرکی هم لاگین میکنه، رمزی که وارد میکنه رو 4000 بار هش کنید و اگه همون هش توی دیتابیس تولید شد، اونوقت رمز درست وارد شده.

درست نیست که یک پسورد که هش شده رو دوباره به یک تابع دیگه بدیم هش بشه. البته اینو توی سایت phpmaster گفته بودند.
هر چیزی که phpmaster و امثالهم بگن صحیح نیست. هش کردن چندگانه مشکلی نداره. بعلاوه چون هش یک تابع خیلی سریع هست، هش کردن چندگانه باعث کاهش سرعت میشه و از اونجا که عملی نیست که برای هر کاربر بخواد در طی یک بازدید، چندین بار انجام بشه، مشکلی توی سرعت سایت ایجاد نمیکنه ولی جلوی برخی روشهای نفوذ مثل Bruteforce و... رو میگیره.

AbiriAmir
جمعه 06 بهمن 1391, 17:30 عصر
آخه چه دلیلی داره 4000 بار هش انجام بشه؟
فکر نکنم 5 بارشو هم بشه برگردوند...
اصلا نیازی نمیبینم 4000 بار هش انجام شه!
شما کافیه 2 بار انجام بدید و برای این که بهتر باشه 1 بارش md5 باشه و بار بعد sha1 که امن تر هم باشه...

Tarragon
جمعه 06 بهمن 1391, 18:58 عصر
حالا محض احتیاط!!!

matrixhassan
جمعه 06 بهمن 1391, 19:12 عصر
با تشکر از همه دوستان

خوب حالا کدوم روشو ما انتخاب کنیم ؟

matrixhassan
جمعه 06 بهمن 1391, 19:33 عصر
فکر کنم همون 4000 بار برای من هم راحتره هم کافی .

تو این آموزش هکی که من داشتم نگاه میکردم این سایتو از طریق یه سایت که امنیتش ضعیف بود هکش کردن یهنی از هاست اشتراکی داشتن استفاده میکردن درست مثل من .

حالا یه راه برای جلوگیری از این خطرات استفاده از VPS هست طبق اطلاعات من .

راههای دیگه مقابله با این خطرات چی میتونه باشه ؟ :متفکر:

MMSHFE
جمعه 06 بهمن 1391, 19:48 عصر
آخه چه دلیلی داره 4000 بار هش انجام بشه؟
فکر نکنم 5 بارشو هم بشه برگردوند...
اصلا نیازی نمیبینم 4000 بار هش انجام شه!
شما کافیه 2 بار انجام بدید و برای این که بهتر باشه 1 بارش md5 باشه و بار بعد sha1 که امن تر هم باشه...
یکی از متداولترین روشهای هک پسورد، Bruteforce هست و بد نیست بدونید سرورهایی موسوم به BOT هستن که در هر ثانیه میتونن چند صد هزار و حتی چند میلیون رمز رو بررسی کنن و اصولاً برای همین کار طراحی شدن. حالا هرچقدر بتونید عملیات تولید رمز رو کند کنید، سرعت کار چنین سرورهایی رو کاهش میدین. مثلاً MD5 ممکنه 4 میلیونیوم ثانیه طول بشه که درنتیجه امتحان کردن 1 میلیون رمز، 4 ثانیه طول میکشه درحالی که اگه 4000 بار هش کنید، تولید هر رمز 16 هزارم ثانیه میشه و امتحان کردن 1 میلیون رمز، 16000 ثانیه یعنی حدوداً 4.5 ساعت طول میکشه. حالا باز هم بنظرتون این روش بی فایده است؟

matrixhassan
جمعه 06 بهمن 1391, 20:11 عصر
یه مشکل

وقتی عدد 123456 رو یه بار هش میکنی میشه :

e10adc3949ba59abbe56e057f20f883e

و وقتی هش بالارو 3999 بار هش میکنی میشه :

d0a044cdb32ffc3abcfa791a71245f13

و وقتی عدد 123456 رو 4000 بار هش میکنی میشه این :

2667a9fb0d3ab8cbba0b73f296214634

اینا که باهم فرق کرد حالا باید چیکار کنم ؟

ravand
جمعه 06 بهمن 1391, 20:19 عصر
عدد رو من شنیدم راحت میشه از حالت رمز گذاری درش اورد ولی اگه عدد با حروف باشه امنیتش بیشتره.

matrixhassan
جمعه 06 بهمن 1391, 20:49 عصر
عزیز دل انگیز مثلا گفتم و مشکل یه چیز دیگست و در ضمن کاربر هر چی خوشش امد میده من نمیتونم بگم اینو بده اونو بده

IMPACT
جمعه 06 بهمن 1391, 20:55 عصر
عزیز دل انگیز مثلا گفتم و مشکل یه چیز دیگست و در ضمن کاربر هر چی خوشش امد میده من نمیتونم بگم اینو بده اونو بده

خوب چرا نمیتونین بگین , شما خودت میتونی به پسوردی که دارین md5 میکنین یه رشته اظافه کنین.

Tarragon
جمعه 06 بهمن 1391, 21:04 عصر
بنظرم منظورشون اضافه بود :دی

matrixhassan
جمعه 06 بهمن 1391, 21:10 عصر
دوستان فعلا غلط املایی رو بی خیال

اگه از اول خونده باشید من گفتم که من یوزر دارم و نمیخوام هیچی بهش اضافه کنم فقط میخواستم بدونم وقتی هش 3999 تا میکنم چرا با 4000 فرق میکنه این مشکلمه ؟

MMSHFE
جمعه 06 بهمن 1391, 22:23 عصر
یه مشکل
وقتی عدد 123456 رو یه بار هش میکنی میشه :
e10adc3949ba59abbe56e057f20f883e
و وقتی هش بالارو 3999 بار هش میکنی میشه :
d0a044cdb32ffc3abcfa791a71245f13
و وقتی عدد 123456 رو 4000 بار هش میکنی میشه این :
2667a9fb0d3ab8cbba0b73f296214634
اینا که باهم فرق کرد حالا باید چیکار کنم ؟
از این تابع استفاده کنید:


<?php
function MultiMD5($value, $count = 4000) {
for($i = 0; $i < $count; $i++) {
$value = md5($value);
}
return $value;
}
?>

حالا برای رمزهایی که از قبل داشتین (که یکبار md5 روی اونها اجرا شده)، پارامتر دوم رو 3999 بدین و برای رمزهای جدید و کلاً چک کردن رمز واردشده، 4000 بدین یا اصلاً پارامتر دوم رو وارد نکنید تا خودش 4000 بگذاره.
موفق باشید.

rezaonline.net
شنبه 07 بهمن 1391, 01:13 صبح
آلگوریتم هش کردن پسورد کاربر رو روی 4000 دور بذار .
برای تغییر دیتابیس فعلی ، به ازای هر کاربر فیلد پسور رو بگیر و 3999 بار هش کن و دوباره ذخیره کن ، اینجوری دیگه درست در میاد .

Tarragon
شنبه 07 بهمن 1391, 05:58 صبح
آقای شهرکی یه نگاه به این پست میندازید؟
http://barnamenevis.org/showthread.php?380700-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-md5&p=1684913&viewfull=1#post1684913

matrixhassan
شنبه 07 بهمن 1391, 09:33 صبح
با تشکر از همه دوستان مشکل من تو این مود حل شد

فقط یه راهنمایی هم تو این سوال میخواستم :

تو این آموزش هکی که من داشتم نگاه میکردم این سایتو از طریق یه سایت که امنیتش ضعیف بود هکش کردن یهنی از هاست اشتراکی داشتن استفاده میکردن درست مثل من .

حالا یه راه برای جلوگیری از این خطرات استفاده از VPS هست طبق اطلاعات من .

راههای دیگه مقابله با این خطرات چی میتونه باشه ؟ :متفکر:

rezaonline.net
شنبه 07 بهمن 1391, 10:36 صبح
همه جور حمله ای داریم اما فکر کنم اون خطری که مد نظر شماسس session hijack باشه ، روش مقابله با اون هم ذخیره سسشن در یک دایرکتوری اختصاصی هست ، یا اصلا توی دیتابیس ذخیره کنید !
http://www.tonymarston.net/php-mysql/session-handler.html

AbiriAmir
شنبه 07 بهمن 1391, 13:23 عصر
یکی از متداولترین روشهای هک پسورد، Bruteforce هست و بد نیست بدونید سرورهایی موسوم به BOT هستن که در هر ثانیه میتونن چند صد هزار و حتی چند میلیون رمز رو بررسی کنن و اصولاً برای همین کار طراحی شدن. حالا هرچقدر بتونید عملیات تولید رمز رو کند کنید، سرعت کار چنین سرورهایی رو کاهش میدین. مثلاً MD5 ممکنه 4 میلیونیوم ثانیه طول بشه که درنتیجه امتحان کردن 1 میلیون رمز، 4 ثانیه طول میکشه درحالی که اگه 4000 بار هش کنید، تولید هر رمز 16 هزارم ثانیه میشه و امتحان کردن 1 میلیون رمز، 16000 ثانیه یعنی حدوداً 4.5 ساعت طول میکشه. حالا باز هم بنظرتون این روش بی فایده است؟

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


ضمنا شما 1 بار md5 کنید ( که دوست استارترمون تا الان این کار رو انجام دادن )
حالا 1 رشته اول و آخرش اضافه کنید و بعد دوباره sha1 کنید
حالا این پسورد اگه برگشت شما هرچی خواستید بگید...
با Brute Force هم بر نمیگرده خیالتون راحت...
کسی که در این حد دسترسی داشته باشه که دیتابیستون رو ببینه و الگوریتم سایتتون رو هم بدونه خیلی کارای بیشتری از دزدیدن پسورد میتونه بکنه!

matrixhassan
شنبه 07 بهمن 1391, 13:41 عصر
با تشکر از دوست گرامی بله وقتی کسی وارد دیتابیس شد دیگه نیازی نیست که اصلا رمزتو بدونه من میخواستم اگه از طریق sql injection پیدا کرد که نتونه، که تقریبا تو اون قسمت تمام راههای جلوگیری رو رعایت کردم.

تو آموزشی که من دیدم سایتی که هک شد اصلا باگی نداشت و هکر برای اینکه بتونه سایت مورد نظر رو هک کنه رفت و سایتهای که روی هاست همون سایت مد نظر بود رو گشت و یه سایتی رو که مشکل داشت رو پیدا کرد ، یوزر و پسورد سایت ضعیفو بدست آورد و وارد سایت شد و یه فایل شل رو آپلود کرد و از اون طریق سایتو خوابوند و این ربطی به سیشن نداشت .

من میخواستم بدونم تو اینجور مواقع چیکار باید کرد ؟

AbiriAmir
شنبه 07 بهمن 1391, 21:27 عصر
در این مواقع است که میگن هاستینگ معتبر نعمته!
و مهمتر از اون که هاست اشتراکی یعنی همین...
شما اگر امنیت براتون خیلی مهم هست باید از vps یا dedicated استفاده کنید
اگر به اینه طرف نیاز به هک سایت دیگه هم نداره!
میره از همون شرکت هاستینگ 100 مگ هاست میگیره و بقیه ماجرا...

ضمنا سایتی که مشکل sql injection داره هم کارای خیلی بیشتری از دزدیدن پسورد میشه روش انجام داد...
اگر قرار باشه بشه پسوردی رو با sql inject به دست اورد میشه 1 سطر جدید به تیبل insert کرد...

eshpilen
شنبه 07 بهمن 1391, 21:43 عصر
علت اینکه میگن کرک هش نباید راحت باشه اینه که پسورد خودش مثل یک اطلاعات مهم و محرمانهء کاربر هست که به سایت شما میسپاره و شما باید شرط امانت داری رو ادا کنید.
اون پسورد خودش میتونه برای هکرها ارزشمند باشه. چون خیلی از کاربران آگاهانه و ناآگاهانه از پسوردهای یکسان یا دارای شباهت، در سایتها و اکانتهای مختلف استفاده میکنن. این میتونه به هکر در نفوذ به سایر اکانتهای کاربر خیلی کمک کنه.
کلیتش اصلا جالب نیست که اصل پسورد دربیاد.
یوقت هم میبینی طرف توی پسورد اطلاعات شخصی ای گذاشته (چه میدونم حداقل شماره شناسنامه ای، تاریخ تولدی، شماره تلفن و چیزهای دیگه خلاصه). خیلی ها این کار رو میکنن. البته شاید این مورد زیاد مهم نباشه، ولی بهرحال از نظر Privacy بهتره افشا نشه.

همه که کارشناس امنیت نیستن. ضمنا حتی حرفه ایها هم بعضا اشتباه میکنن یا تنبلیشون میاد یه پسورد بی نقص درست کنن و حفظش کنن یا جایی طوری ازش محافظت کنن.
ایجاد پسوردهای قوی و بی نقص متعدد و نگهداری و مدیریت اونا کار راحتی نیست.
انسانها در این زمینه ضعف ویژه ای دارن.

ضمنا بدست آوردن پسورد بهرحال میتونه در خیلی جاها کار هکر رو به مراتب راحتتر و سریعتر کنه. چون دیگه مجبور نیست برای کوچکترین کاری مدام توی کدها و نتیجه ها بگرده و تست و تفسیر کنه و کوئری و کد Inject بسازه.
یوقت هم ممکنه همون دستکاری هایی که با کد میکنه درش اشتباه و خطایی بکنه (مثلا فیلد/رکورد اشتباهی رو حذف یا ویرایش بکنه که در سیستم تابلو یا باعث مشکل فنی بشه، یا کوئری هایی که خطا ایجاد کردن در سیستم لاگ شده باشن) که باعث لو رفتنش بشه.