انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: salt در هش کردن اتفاقی تولید میشه ؟ (حل شد)  (دفعات بازدید: 2781 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین abedzadeh

  • High Hero Member
  • *
  • ارسال: 1597
  • جنسیت : پسر
  • aliila
سلام دوستان
این چند روز یه بحثی در مورد هش کردن پسوردها در انجمن بود
سوالی که برام پیش اومده اینه که اگه سالت ها اتفاقی تولید و به پسورد هش شده اضافه میشن ، چطور دفعه ی بعدی که کاربر پسورد رو وارد میکنه و هش میشه ، دوباره همون سالت تولید میشه ؟
پس منظور از اتفاقی چیه ؟
« آخرین ویرایش: 17 دی 1393، 02:45 ب‌ظ توسط Minion »
به گروه کاربران اوبونتوی ایرانی در جامعه ی استیم بپیوندید
http://steamcommunity.com/groups/Ubuntu-Iran
بازی های تحت پوشش : Dota2

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : salt در هش کردن اتفاقی تولید میشه ؟
« پاسخ #1 : 17 دی 1393، 02:04 ب‌ظ »
میتونی یک salt ثابت داشته باشی تو کد برنامه موقع هش کردن و مقایسه.
نمونه‌هایی که من دیدم از ثبت salt تو دیتابیس استفاده میکردند.
..I feel no fault for the fault I feel..

آفلاین کامروا

  • Full Member
  • *
  • ارسال: 235
  • ایالات متحده جهرم
پاسخ : salt در هش کردن اتفاقی تولید میشه ؟
« پاسخ #2 : 17 دی 1393، 02:13 ب‌ظ »
salt بصورت PlainText توی دیتابیس ذخیره میشه.

آفلاین abedzadeh

  • High Hero Member
  • *
  • ارسال: 1597
  • جنسیت : پسر
  • aliila
پاسخ : salt در هش کردن اتفاقی تولید میشه ؟
« پاسخ #3 : 17 دی 1393، 02:18 ب‌ظ »
پس آیا میشه گفت اگه یه نفر علاوه بر فایل پسورد های هش شده ، به دیتابیس سالت ها هم دسترسی پیدا کنه ، عملا سالت ها بی تاثیرند ؟
به گروه کاربران اوبونتوی ایرانی در جامعه ی استیم بپیوندید
http://steamcommunity.com/groups/Ubuntu-Iran
بازی های تحت پوشش : Dota2

آفلاین کامروا

  • Full Member
  • *
  • ارسال: 235
  • ایالات متحده جهرم
پاسخ : salt در هش کردن اتفاقی تولید میشه ؟
« پاسخ #4 : 17 دی 1393، 02:19 ب‌ظ »
میتونی یک salt ثابت داشته باشی تو کد برنامه موقع هش کردن و مقایسه.
نمونه‌هایی که من دیدم از ثبت salt تو دیتابیس استفاده میکردند.
فکر میکنم شما salt رو با pepper اشتباه گرفتید.

آفلاین کامروا

  • Full Member
  • *
  • ارسال: 235
  • ایالات متحده جهرم
پاسخ : salt در هش کردن اتفاقی تولید میشه ؟
« پاسخ #5 : 17 دی 1393، 02:26 ب‌ظ »
پس آیا میشه گفت اگه یه نفر علاوه بر فایل پسورد های هش شده ، به دیتابیس سالت ها هم دسترسی پیدا کنه ، عملا سالت ها بی تاثیرند ؟
فرض کنید توی یک سایت با 100 هزار عضو. که پسورد 2هزار نفر از عضوهای این سایت 123456 هست که MD5 Hash این عدد برابر با :
e10adc3949ba59abbe56e057f20f883e
حالا یک هکر تونسته دیتابیس رو هک کنه و تمامی اطلاعات افراد رو داره.

حالا اگر هکر بیاد مقدار e10adc3949ba59abbe56e057f20f883e رو جستجو کنه میبینه که پسورد ۲هزار نفر از افراد 123456 هست :)

ولی اگر پسورد ها با Salt ترکیب و سپس Hash شده باشند، ما الان دوهزار پسورد 123456 داریم که Hash هیچکدوم شبیه به هم نیست.

آفلاین abedzadeh

  • High Hero Member
  • *
  • ارسال: 1597
  • جنسیت : پسر
  • aliila
پاسخ : salt در هش کردن اتفاقی تولید میشه ؟
« پاسخ #6 : 17 دی 1393، 02:43 ب‌ظ »
هممم ، متوجه شدم ، ممنون
اشتباهم این بود که فکر میکردم سالت ها بعد از هش شدن اضافه میشن
خیلی ممنون
به گروه کاربران اوبونتوی ایرانی در جامعه ی استیم بپیوندید
http://steamcommunity.com/groups/Ubuntu-Iran
بازی های تحت پوشش : Dota2

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
میتونی یک salt ثابت داشته باشی تو کد برنامه موقع هش کردن و مقایسه.
نمونه‌هایی که من دیدم از ثبت salt تو دیتابیس استفاده میکردند.
فکر میکنم شما salt رو با pepper اشتباه گرفتید.

درسته، برا بخش اول (اضافه کردن به صورت ثابت) pepper درست هست.
..I feel no fault for the fault I feel..

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4877
  • جنسیت : پسر
  • masoft قدیم
اشتباهم این بود که فکر میکردم سالت ها بعد از هش شدن اضافه میشن
Salt یک بار قبل از هش شدن به گذرواژه اضافه می‌شه و بعد از اون هم یا به صورت مجزا یا به خود Hash اضافه می‌شه.

آفلاین abedzadeh

  • High Hero Member
  • *
  • ارسال: 1597
  • جنسیت : پسر
  • aliila
اشتباهم این بود که فکر میکردم سالت ها بعد از هش شدن اضافه میشن
Salt یک بار قبل از هش شدن به گذرواژه اضافه می‌شه و بعد از اون هم یا به صورت مجزا یا به خود Hash اضافه می‌شه.
عجبا  :D
ممنون
به گروه کاربران اوبونتوی ایرانی در جامعه ی استیم بپیوندید
http://steamcommunity.com/groups/Ubuntu-Iran
بازی های تحت پوشش : Dota2

آفلاین Masoud92m

  • High Hero Member
  • *
  • ارسال: 1350
  • جنسیت : پسر
من متوجه نمیشم چطوری هست وقتی یه عبارت مثل 12345 رو با salt هش میکنیم هر بار یه نتیجه متفاوت میاد اما وقتی بررسی میکنیم همشون با هم برابر هستن ???
اگه salt به یک شکل قبل از هش شدن اضافه میشه پس باید تمام هش ها مثل هم باشه
اگه هم قبل از هش شدن به شکل های متفاوتی اضافه میشه پس عبارت ها فرق داره و هش ها برابر هم نیستن !
منتظر نباش که مرگ تو کی میاد / آزاد باش مثل من مثل خیلی ها
حتی اگه کسی سمت تو نمیاد / آزاد باش مثل من مثل خیلی ها
حتی اگه میبینی که کسی حرفتو نمیخواد / آزاد باش مثل من مثل خیلی ها
مثل من مثل خیلی ها ..... آزاد باش مثل من مثل خیلی ها

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4877
  • جنسیت : پسر
  • masoft قدیم
خوب فرض می‌کنیم که گذرواژه ما 12345 هستش.
ابتدا یک Hash به صورت تصادفی ایجاد می‌کنیم، فرض کنید ABCDEFG هستش.
حالا 12345ABCDEFG رو داریم و توسط یک روش Hashing مناسب مثلا SHA-1 کار تبدیل رو انجام می‌دیم. خروجی هست:
1ecf5773d52f6f220c6dcb8d8c18a85512b9bb48برای اینکه Salt به صورت تصادفی ایجاد شده، اون رو هم لازم داریم و می‌تونیم به همون Hash اضافه کنیم. نتیجه می‌شه:
1ecf5773d52f6f220c6dcb8d8c18a85512b9bb48ABCDEFG
این متن رو می‌تونیم مستقیما در پایگاه داده‌ای که داریم ذخیره کنیم. و چون Salt به صورت تصادفی ایجاد می‌شه، همیشه نتیجه متفاوتی خواهیم داشت.

اندازه یک Hash همیشه ثابت هست، مثلا برای SHA1 که به صورت Hexadecimal نمایش داده می‌شه، همیشه ۴۰ حرف هستش، در نتیجه از حرف ۴۱ به بعد Salt قرار داره.

حالا می‌خوایم گذرواژه جدید رو تست کنیم. ابتدا گذرواژه رو از کاربر می‌پرسیم، گذرواژه Hash شده رو از پایگاه داده می‌خونیم و Salt اون رو استخراج می‌کنیم، ایندفعه بجای تولید تصادفی Salt از Saltای که استخراج کردیم Hash رو به روش قبل می‌سازیم و با Hashای که توی پایگاه داده هست مقایسه می‌کنیم. اگر برابر باشه، یعنی گذرواژه جدید درسته.

آفلاین کامروا

  • Full Member
  • *
  • ارسال: 235
  • ایالات متحده جهرم
من متوجه نمیشم چطوری هست وقتی یه عبارت مثل 12345 رو با salt هش میکنیم هر بار یه نتیجه متفاوت میاد اما وقتی بررسی میکنیم همشون با هم برابر هستن ???
اگه salt به یک شکل قبل از هش شدن اضافه میشه پس باید تمام هش ها مثل هم باشه
اگه هم قبل از هش شدن به شکل های متفاوتی اضافه میشه پس عبارت ها فرق داره و هش ها برابر هم نیستن !
Salt هربار بصورت Random تولید میشه.
چون هر بار Salt جدیدی تولید میشه، Hash هم فرق میکنه.
ولی توجه داشته باشید که Saltی که داره تولید میشه هم ذخیره میشه. چون اگر ذخیره نشه دیگه نمیتونیم اعتبارسنجی کنیم.

آفلاین Masoud92m

  • High Hero Member
  • *
  • ارسال: 1350
  • جنسیت : پسر
@nixoeen
@کامروا

متوجه شدم، متشکرم :)
منتظر نباش که مرگ تو کی میاد / آزاد باش مثل من مثل خیلی ها
حتی اگه کسی سمت تو نمیاد / آزاد باش مثل من مثل خیلی ها
حتی اگه میبینی که کسی حرفتو نمیخواد / آزاد باش مثل من مثل خیلی ها
مثل من مثل خیلی ها ..... آزاد باش مثل من مثل خیلی ها