سلام در ریاضی جواب معادلات پیچیده رو عموما نمیشه به صورت قطعی پیدا کرد. بیشتر وقتا راه حل تحلیلی یا احتمالاتی داره که به جواب دقیق نمیرسه و خب در رمزنگاری هم جواب دقیق لازمه. پس حتی اگر رابطه رمز نگاری رو داشته باشی الزاما به این معنا نیست که با داشتن رمز به مقدار ورودی برسی.
این هش داره منو خیلی اذیت میکنه هش یه تابع یک به یک هست چطور میشه معکوس نداشته باشه؟ و اینکه الگوریتم sha ظاهرن همه جا ریخته چطور معکوسش تا حالا درست نشده؟
یعنی فکر می کنی هر تابعی، باید معکوس پذیر هم باشه؟ (: خب این اشتباهه. فرض کن تابع من اینه: ارقام یک عدد رو با هم جمع می زنیم و اینکار رو تا وقتی عدد بزرگتر از ۹ است تکرار می کنیم. مثلا عدد ۱۲۳ می شه ۶. حالا چطوری می خوای از ۶ به ۱۲۳ برسی؟ (:
@@JadiMirmirani خب هر تابعی که نه ولی توابع یک به یک معکوس پذیر هستن مثال شما هم چون یک به یک نیست معکوس پذیر نیست چون عدد ۳۲۱ هم جمعش میشه ۶ ولی اگر قراره کار هش رو برای تایید رنز عبور انجام بدیم باید حتمن یک به یک باشه
ضرب اعداد اول رو در نظر بگیر. دو تا عدد رو در هم ضرب می کنی و به یه عدد بزرگ می رسی. کار راحتی است. ولی برعکسش (رسیدن به دو عدد اول با داشتن حاصلضرب) کاری بسیار سخته. و دقت کن که اصولا تابع یک به یک نداریم در هش. همیشه تکرار خواهیم داشت چون چیزی نامحدود رو به چیزی محدود مپ می کنیم
@@JadiMirmirani این که یک به یک نیست میتونه موضوع رو تا حد زیادی توجیه کنه ولی معنی دیگش اینه که ممکنه سیستم فقط پسوورد من رو صحیح تشخیص نده حقیقتش به ذهنم خورده بود یه برنامه بنویسم که برای تعداد زیادی عبارت رندم sha رو حساب کنه و یه دیتاست بزرگ دستم باشه در ادامه این دیتاست رو به یه شبکه عصبی برای تعلیم بدم و ببینم جواب میگیرم یا نه گفتم قبلش با شما مشورت کنم اگر قرار نیست جواب بده توجیه شم😅
اشتباه گفتی 16 به توان 64 هستش البته شاید جوابش همونی که میگی بشه ولی هر کاراکتر از صفره تا f و مجموعه در هش sha-256 ما 64 کاراکتر خروجی داریم پس میشه 16 به توان 64