سلام
کسی میدونه چطور میتونم برای المان هایی که از سمت دیتابیس خونده میشه (مثل محصولات،مطالب،کاربران و ...) id یا شناسه ی هش شده چاپ کنم (تو قسمت فرانت سایت)
برای مثال من لیست کاربرانی دارم که هر کدوم از اون ها فانکشن های خاص خودشون رو دارن
سیستم طوری طراحی شده که با کلیک کردن روی دکمه ی ویرایش هر کاربر id اون کاربر و چیزای دیگه فرستاده میشه سمت سرور و تغییرات ذخیره میشه در نهایت (یه مثاله؛ فکر کنین دکمه ی حذف گذاشتم که یه ریکوئست get فرستاده که id کاربر هم داخلشه)
سوال نهایی :) اینه که من چطور میتونم id که از دیتابیس میخونم رو به صورت هش شده سمت کاربر نشون بدم و اگر لازم بود فرستاده بشه به سرور بتونم از حالت هش شده خارجش کنم و همون 1,2,3,.... که در دیتابیس هست رو شناسایی کنم
نمیدونم راکت از چه سیستم و دیتابیسی استفاده میکنه ولی ظاهرا id هارو هش میکنه
@ali.bayat
میشه راهنمایی کنید
مهمه برام
درود پیشنهاد میکنم یکم دقیقتر در مورد مباحث هش بخونید.( البته خودمم خیلی اطلاعات ندارم )
ابتدا بگم وقتی یک استرینگ هش میشه - یک ابر کامپیوتر لازمه تقریبا که بتون اون هش رو دوباره به استرینگ قبلیش تبدیل کنه.
دوم اینکه :نقل قول شما :
کر کنین دکمه ی حذف گذاشتم که یه ریکوئست get فرستاده که id کاربر هم داخلشه
این کار خیلی اشتباهه هیچوقت این کارو نکن.حتی فرضی ؟!!همیشه موارد حذف باید به صورت post تعریف بشند . دلیلش هم واضحه فک کنی میفهمی.
سوم اینکه : این عکسی که نشون دادی به صورت خودکار توسط liveWire انجام میشه - این کاری نیست که مثلا حسام موسوی اومده باشه انجام بده اون اطلاعاتی هم که میبینی اونجان هش نیستن -فقط یک رشته یا ایدی تصادفی نسبت داده به صورت تجربی میگم نمیدونم این حرفم چقدر صحت داره - معمولا هش ها با این رشته شروع میشند"$2y$10$" خودت هم چند تا هش انجام بدی متوجه میشی همشون اولش این رشته رو ثابت دارند.
چهارم جواب سوال نهاییت : تقریبا کاری که میگی نمیشه .گفتم مگه اینکه سرورت یک ابر کامپیوتر باشه
وقت بخیر
با بخشی از حرفاتون موافقم کاملا ولی چنتا نکته رو بگم:
اول اینکه اگر خودمون یه تابع encode و decode اختصاصی که بر اساس الگوریتمی که خودمون بهش میدیم عمل میکنه بنویسیم با همین سرورای معمولی هم میشه یه رشته رو هش کرد هم رشته ی اصلی رو برگردوند ولی این یه سیستم و الگوریتم شخصیه و من این سوالو مطرح کردم چون میخوام ببینم بقیه چه کاری میکنن...
دوم اینکه خیلی از رشته هایی که با md5,sha1 هش شدن (رشته های ساده البته) به راحتی قابل برگشت هستن و سایت هایی هستن که این کارو میکنن مثل
این سایت
پس لزوما نیازی به ابر کامپیوتر نیست
سوم اینکه در مورد ارسال درخواست به صورت post کاملا موافقم
ولی اون یه مثاله واقعا
شما فرض کن یه رکورد از جدولی که اهمیت بالایی نداره قراره ویرایش بشه
هر رکورد شامل یه آیدی اختصاصی هست که تو دیتابیس ذخیره شده
من تو پنل ادمین همه ی فیلد هارو لیست کردم (که شامل آی دی اختصاصی اون رکورد هم میشه-چون باید این آی دی رو برگردونم تا بدونم چه رکوردی باید ویرایش بشه) و هر فیلد دکمه ی ویرایش داره
تمام کاری که من میخوام انجام بدم اینه که شناسه ی اون رکورد وقتی اینسپکت میگیریم به صورت هش شده باشه (منظورم از هش لزوما یه رشته ی ۶۰ کاراکتری نیست ، صرفا بتونه به جای نمایش اعداد 1,2,3,4,... به عنوان آی دی یک رشته ی نامفهوم تر رو به عنوان شناسه ی اون رکورد نشون بده)
امیدوارم منظورمو رسونده باشم
سلام و درود بر شما دوباره - بله مثل اینکه اطلاعات شما از منم بالاتره - هر چی گفتین کاملا درست بود موافقم
@mohsen.mehri6101
حرفتون درسته ولی من هدفم این نیست که هش تولید شده تحت هیچ شرایطی دیکود نشه
من به این مسئله به چشم یه مورد امنیتی نگاه نمیکنم
صرفا یه مسئله هست برام که میخوام ببینم افراد مختلف چطور حلش میکنن ودر نهایت خوش حال میشم که به راه حلی برسم که بتونم ازش تو جاهایی که نیاز دارم استفاده کنم
ولی یه راه حل اصولی
@IrajJavidan1
فکر کنم بارها شنیدین که غیر ممکنی وجود نداره
امتحان کردن این قضیه که md5 دیکود میشه یا نه هم خیلی کار سختی نیست
984d8144fa08bfc637d2825463e184fa
کافیه این عبارت هش شده رو تو سایتی که بالاتر گفتم بررسی کنید
اگه به عبارت
ali123
رسید
یعنی هش شده
سلام
نمیدونم کارتون راه میفته یا نه ولی با توابع base64_encode و base64_decode میتونی یه رشته رو (همونطور که از اسم توابع معلومه) اینکود و دیکود کنی
ولی بازم بهتره بقیه دوستان نظرشون رو بگن
شاید به راه حل بهتری رسیدین
برام سواله که دقیقا هدفتون از این کار چیه و شاید راه ساده تری وجود داشته باشه... در کل به نظرم اینکه آیدی ها رو خواسته باشیم هش کنیم و بعد دوباره دیکود کنیم به این شکل سربار زیادی داره و از طرفی اگر بصورت هش نشده نمایش بدیم نباید قضیه مهم و مشکل زایی هم باشه.
اگر نگرانیتون بدلیل ملاحظات امنیتی هست که مثلا کاربری نتونه پست یا محصول کاربر دیگری رو تغییر بده یا حذف کنه این قضیه بر میگرده به قوانین Authoriztion تون که باید حتما پیاده سازی کرده باشید و قبل از هر گونه عملیاتی این موارد بررسی بشوند. با این وضعیت حتی اگر آیدی ها بصورت عمومی هم قابل دسترس باشند هیچ مسئله ای ایجاد نخواهد کرد.
یک راه دیگرش هم شاید استفاده از فیلدی غیر از آیدی در چنین مواقعی باشه. مثلا بیاید برای هر محصول یک شناسه یکتا ایجاد کنید و از این به بعد بجای ایدی که یک int از نوع increment ساده هست از این شناسه یکتا استفاده کنید. چیزی مثل شماره فاکتورها یا slug مقالات یا...
@ali.securenetwork این سایت و سایت هایی که ادعای decrypt md5 رو دارن، یک دیتابیسی از کلمات و هششون دارن و وقتی شما اون هش رو وارد میکنین در دیتابیس سرچ میکنن و اگه وجود داشت، متن رو بر میگردونن
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟