🗿3
✔️ تا حالا فکر کردید Google Authenticator چطور حتی بدون اینترنت هم کدهای 2FA تولید میکنه؟
این اپلیکیشن از الگوریتمی به نام TOTP (Time-Based One-Time Password) استفاده میکنه که بر پایه HMAC کار میکنه.
در واقع، این الگوریتم با استفاده از زمان و یک کلید مخفی، کدهای یکبارمصرف تولید میکنه که هر ۳۰ ثانیه تغییر میکنن. همین باعث میشه حتی در حالت آفلاین هم بتونید ازش استفاده کنید.
خیلی جالبه که امنیت تا این حد ساده و در عین حال موثر میتونه باشه!
📍 @Code_Cache
این اپلیکیشن از الگوریتمی به نام TOTP (Time-Based One-Time Password) استفاده میکنه که بر پایه HMAC کار میکنه.
در واقع، این الگوریتم با استفاده از زمان و یک کلید مخفی، کدهای یکبارمصرف تولید میکنه که هر ۳۰ ثانیه تغییر میکنن. همین باعث میشه حتی در حالت آفلاین هم بتونید ازش استفاده کنید.
خیلی جالبه که امنیت تا این حد ساده و در عین حال موثر میتونه باشه!
📍 @Code_Cache
👍3
🤣11
چرا 0.1 + 0.2 میشه 0.30000000000000004؟!
توی دنیای برنامه نویسی ؟؟؟
واقعا چرا؟
تاحالا شده یه جمع ساده توی جاوااسکریپت، پایتون یا سی بزنید و جواب عجیب بگیرید؟ مثلا اینو تست کن:
ولی چرااااا؟ مگه جمع اینا نباید بشه 0.3؟!
دلیلش چیه؟ مشکل از پایهی ریاضی کامپیوتره عزیز جان!
اعداد توی کامپیوتر توی مبنای 2 (باینری) ذخیره میشن، نه مبنای 10 (دهدهی) که ما باهاش راحتیم. مثلا:
▫️عدد ۰.۵ توی باینری: 0.1₂
▫️عدد ۰.۲۵ توی باینری: 0.01₂
اما عدد ۰.۱ توی باینری چی؟
عدد 0.1 توی مبنای ۲ یه عدد تکرارشوندهی بینهایت میشه، مثل این:
حالا مشکل چیه؟ کامپیوتر فقط ۵۳ بیت برای ذخیرهی این عدد داره، پس یه جایی مجبوره گردش کنه و عدد واقعی یه کوچولو خطا داره. این خطا وقتی جمع بشه، همون خروجی عجیب رو میده
چجوری حلش کنیم حالا اینو؟
گزینه اول: استفاده از Decimal توی پایتون
گزینه دوم: گرد کردن نتیجه
در آخر اینو بگم که این یه باگ نیست، یه محدودیت ریاضیه!
این مشکل توی حسابداری، پردازشهای علمی و حتی انیمیشنها میتونه دردسرساز بشه، پس اگه عدد دقیق نیاز داری، باید حواست به این قضیه باشه ،عجیب بود نه؟ دیگه دنیای کامپیوتر همینه
@code_cache
توی دنیای برنامه نویسی ؟؟؟
واقعا چرا؟
تاحالا شده یه جمع ساده توی جاوااسکریپت، پایتون یا سی بزنید و جواب عجیب بگیرید؟ مثلا اینو تست کن:
console.log(0.1 + 0.2); // 0.30000000000000004
ولی چرااااا؟ مگه جمع اینا نباید بشه 0.3؟!
دلیلش چیه؟ مشکل از پایهی ریاضی کامپیوتره عزیز جان!
اعداد توی کامپیوتر توی مبنای 2 (باینری) ذخیره میشن، نه مبنای 10 (دهدهی) که ما باهاش راحتیم. مثلا:
▫️عدد ۰.۵ توی باینری: 0.1₂
▫️عدد ۰.۲۵ توی باینری: 0.01₂
اما عدد ۰.۱ توی باینری چی؟
عدد 0.1 توی مبنای ۲ یه عدد تکرارشوندهی بینهایت میشه، مثل این:
0.1 (Decimal) = 0.00011001100110011001100110011001100... (Binary)حالا مشکل چیه؟ کامپیوتر فقط ۵۳ بیت برای ذخیرهی این عدد داره، پس یه جایی مجبوره گردش کنه و عدد واقعی یه کوچولو خطا داره. این خطا وقتی جمع بشه، همون خروجی عجیب رو میده
چجوری حلش کنیم حالا اینو؟
گزینه اول: استفاده از Decimal توی پایتون
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2')) # 0.3 دقیق!
گزینه دوم: گرد کردن نتیجه
console.log((0.1 + 0.2).toFixed(1)); // 0.3
در آخر اینو بگم که این یه باگ نیست، یه محدودیت ریاضیه!
این مشکل توی حسابداری، پردازشهای علمی و حتی انیمیشنها میتونه دردسرساز بشه، پس اگه عدد دقیق نیاز داری، باید حواست به این قضیه باشه ،عجیب بود نه؟ دیگه دنیای کامپیوتر همینه
@code_cache
🔥9
اگر توی جنگل با یک خرس روبرو شدید که قصد حمله به شما رو داشت، بهترین کار اینه که از خرس بخواین پول رکوئست شما رو در گیتهاب ریویو کنه. بعدش میبینین خرس وانمود میکنه شما رو ندیده و میره.
@code_cache
@code_cache
🤣2
This media is not supported in your browser
VIEW IN TELEGRAM
ی نفر از ChatGPT میپرسه چند سال باید کار کنم تا بتونم تو ایران یه ماشین BMW بخرم؟
جوابایی که میده عالیه😂
@code_cache
جوابایی که میده عالیه😂
@code_cache
This media is not supported in your browser
VIEW IN TELEGRAM
مطمئنا جزو قشنگترین دوران زندگی همه ما بود
روزایی که نه غصه دلار بود نه غصه بنزین نه گرونی نه...
#نوستالژی 👨🏿🦯
@code_cache
روزایی که نه غصه دلار بود نه غصه بنزین نه گرونی نه...
#نوستالژی 👨🏿🦯
@code_cache
👍6❤1
اگر اسمتون نیل، نیلو، نلی، نیلا یا مشابه اینهاست متاسفانه پارتنر برنامهنویس مخصوصن زبان Go نمیتونید پیدا کنید.
@code_cache
@code_cache