Forwarded from محتوای آزاد سهراب
و این هم از این.
سری مقدماتی استفاده از گنو/لینوکس
توی این ویدئوها از مینت استفاده کردم، و توی این قسمت یک سری کارهای اولیه رو انجام دادیم مثل کار با apt، نصب چندتا بسته و همینطور توضیحات کلی درمورد میزکار.
توی قسمتهای بعدی به سراغ دستورات پایه و واین خواهیم رفت.
تماشا از یوتوب
تماشا از پیرتوب
@SohrabContents
سری مقدماتی استفاده از گنو/لینوکس
توی این ویدئوها از مینت استفاده کردم، و توی این قسمت یک سری کارهای اولیه رو انجام دادیم مثل کار با apt، نصب چندتا بسته و همینطور توضیحات کلی درمورد میزکار.
توی قسمتهای بعدی به سراغ دستورات پایه و واین خواهیم رفت.
تماشا از یوتوب
تماشا از پیرتوب
@SohrabContents
Forwarded from DevTwitter | توییت برنامه نویسی
تو این سایت میتونید مقالاتِ پولیِ مدیوم رو رایگان باز کنید. در واقع خودش اشتراکِ مدیوم خریده و از طریقِ این سایت در دسترسِ عموم قرار داده. مدیوم نقطهضعفهاش رو حل کرده. تمامِ روشهایِ قدیمیِ دورزدن paywall از کار افتاده. فقط همین روش جواب میده.
freedium.cfd
@DevTwitter | <Ayub Kokabi/>
freedium.cfd
@DevTwitter | <Ayub Kokabi/>
Forwarded from PhiloLearn | فیلولرن
تو این سایت میتونید مقالاتِ پولیِ مدیوم رو رایگان باز کنید. در واقع خودش اشتراکِ مدیوم خریده و از طریقِ این سایت در دسترسِ عموم قرار داده. مدیوم نقطهضعفهاش رو حل کرده. تمامِ روشهایِ قدیمیِ دورزدن paywall از کار افتاده. فقط همین روش جواب میده.
freedium.cfd
💙 @PhiloLearn | <Ayub Kokabi/>
freedium.cfd
💙 @PhiloLearn | <Ayub Kokabi/>
Forwarded from ⚝ (ZiZiGuLu)
Forwarded from LearnPOV | لرن پی او وی
Forwarded from LearnPOV | لرن پی او وی
مثل اینکه ترجمه درخواست شد ؛))
میگه مادرم امروز نگاهی به کد من انداخت و گفت :
"پس کارت اینه که با استفاده از کلمات رندوم انگلیسی و نمادها، متنهایی با رنگهای قشنگ بنویسی؟ نمیدونم چرا برای این کار انقدر حقوق خوبی میگیری. این متن حتی درست هم از سمت چپ تراز نشده."
اون واقعاً میتونه یک ریویو کننده عالی باشه :+)
میگه مادرم امروز نگاهی به کد من انداخت و گفت :
"پس کارت اینه که با استفاده از کلمات رندوم انگلیسی و نمادها، متنهایی با رنگهای قشنگ بنویسی؟ نمیدونم چرا برای این کار انقدر حقوق خوبی میگیری. این متن حتی درست هم از سمت چپ تراز نشده."
اون واقعاً میتونه یک ریویو کننده عالی باشه :+)
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
دنبال صندلی گیمینگ هستی ؟Orb X به ایران امد و ۴۰۰ میلیون ارزان شد
صندلی گیمینگ کولرمستر Orb X یک فضای کار اختصاصی یا «ایستگاه چندمنظوره کاملاً فراگیر»
با کاهش قیمت ۴۰۰ میلیونی از دو میلیارد به عدد یک میلیارد ششصد رسید
مفته
[ وی صندلی میز ناهارخوری خود را جلو میکشد ]
⁉️ شما با پول تو جیبی هاتون چی میخرید؟
صندلی گیمینگ کولرمستر Orb X یک فضای کار اختصاصی یا «ایستگاه چندمنظوره کاملاً فراگیر»
با کاهش قیمت ۴۰۰ میلیونی از دو میلیارد به عدد یک میلیارد ششصد رسید
مفته
[ وی صندلی میز ناهارخوری خود را جلو میکشد ]
⁉️ شما با پول تو جیبی هاتون چی میخرید؟
Forwarded from Gopher Academy
🔵 عنوان مقاله
Elevate Your Backend Skills
🟢 خلاصه مقاله:
مقاله به بررسی اهمیت آموزش و توسعه مهارتها در زمینههای مختلف برنامهنویسی نظیر Python، Go، TypeScript و همچنین آشنایی با پلتفرمهایی مانند AWS میپردازد. این مقاله تأکید دارد که با استفاده از دورههای آموزشی ویدیویی که توسط متخصصین این حوزهها ارائه میشود، افراد میتوانند به طرز چشمگیری دانش و تخصص خود را گسترش دهند. همچنین، اشاره میکند به فرصتهای یادگیری متنوع از طریق مسیرهای یادگیری مختلف که به طور مداوم در حال ارتقا هستند و به شرکتکنندگان این امکان را میدهد که مهارتهای مورد نیاز در بازار کار را به دست آورند. این مقاله تاکید میکند که توسعه مهارتهای برنامهنویسی در درازمدت میتواند به بهبود فرصتهای شغلی و پیشرفت کاری کمک کند.
🟣لینک مقاله:
https://golangweekly.com/link/160744/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Elevate Your Backend Skills
🟢 خلاصه مقاله:
مقاله به بررسی اهمیت آموزش و توسعه مهارتها در زمینههای مختلف برنامهنویسی نظیر Python، Go، TypeScript و همچنین آشنایی با پلتفرمهایی مانند AWS میپردازد. این مقاله تأکید دارد که با استفاده از دورههای آموزشی ویدیویی که توسط متخصصین این حوزهها ارائه میشود، افراد میتوانند به طرز چشمگیری دانش و تخصص خود را گسترش دهند. همچنین، اشاره میکند به فرصتهای یادگیری متنوع از طریق مسیرهای یادگیری مختلف که به طور مداوم در حال ارتقا هستند و به شرکتکنندگان این امکان را میدهد که مهارتهای مورد نیاز در بازار کار را به دست آورند. این مقاله تاکید میکند که توسعه مهارتهای برنامهنویسی در درازمدت میتواند به بهبود فرصتهای شغلی و پیشرفت کاری کمک کند.
🟣لینک مقاله:
https://golangweekly.com/link/160744/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Frontendmasters
Backend Languages Learning Path – Expand Your Backend Skills
Gain fundamental knowledge across multiple programming languages and expand your skillset.
Forwarded from DevTwitter | توییت برنامه نویسی
شیر مرغ تا جون آدمیزاد؟
این ریپو رو ی نگاه بندازید، از ساخت سیستم عامل تا جستجوگر وب و زبان برنامه نویسی خودتون رو میتونید اینجا پیدا کنید:)
طبیعتا بهترین گزینه نیست و بهینه ترین هم نیست ولی برای اینکه یک دید کلی از شیوه کار داشته باشید عالیه:)
https://github.com/codecrafters-io/build-your-own-x
@DevTwitter | <Mani/>
این ریپو رو ی نگاه بندازید، از ساخت سیستم عامل تا جستجوگر وب و زبان برنامه نویسی خودتون رو میتونید اینجا پیدا کنید:)
طبیعتا بهترین گزینه نیست و بهینه ترین هم نیست ولی برای اینکه یک دید کلی از شیوه کار داشته باشید عالیه:)
https://github.com/codecrafters-io/build-your-own-x
@DevTwitter | <Mani/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
پیرو این پست:
https://t.iss.one/linuxtnt/3959
🔰هارالد ولته، چهره سرشناس در دنیای توسعه هسته لینوکس و برنده جوایز متعدد نرمافزار آزاد، به شدت از حذف برخی توسعهدهندگان از فهرست نگهدارندگان هسته لینوکس انتقاد کرده است.
🔹این تصمیم به دلیل ارتباط احتمالی این توسعهدهندگان با شرکتهای تحت تحریم شده بود است.
🔹ولته که از بنیانگذاران سازمان gpl-violations.org و یکی از سازندگان فایروال netfilter/iptables نیز هست، او ابراز تاسف کرد که جو حاکم بر جامعه توسعه هسته لینوکس دیگر همان جو همدلانه و مبتنی بر همکاری نیست که او به یاد دارد.
او این تصمیم را تبعیضی آشکار دانسته و بر اهمیت همکاری بین توسعهدهندگان بدون در نظر گرفتن ملیت، محل سکونت یا وابستگی سازمانی آنها تاکید کرده است.
🔹وی همچنین به روش انجام این کار انتقاد کرد و آن را غیرشفاف و توهینآمیز دانست. به گفته ولته، حذف نام توسعهدهندگان از فهرست بدون اطلاعرسانی عمومی و با استفاده از روشهای پنهانی، نشاندهنده بیاحترامی به کار و تلاش این افراد و همچنین خدشهدار شدن اعتماد در جامعه توسعهدهندگان است.
https://t.iss.one/linuxtnt/3959
🔰هارالد ولته، چهره سرشناس در دنیای توسعه هسته لینوکس و برنده جوایز متعدد نرمافزار آزاد، به شدت از حذف برخی توسعهدهندگان از فهرست نگهدارندگان هسته لینوکس انتقاد کرده است.
🔹این تصمیم به دلیل ارتباط احتمالی این توسعهدهندگان با شرکتهای تحت تحریم شده بود است.
🔹ولته که از بنیانگذاران سازمان gpl-violations.org و یکی از سازندگان فایروال netfilter/iptables نیز هست، او ابراز تاسف کرد که جو حاکم بر جامعه توسعه هسته لینوکس دیگر همان جو همدلانه و مبتنی بر همکاری نیست که او به یاد دارد.
او این تصمیم را تبعیضی آشکار دانسته و بر اهمیت همکاری بین توسعهدهندگان بدون در نظر گرفتن ملیت، محل سکونت یا وابستگی سازمانی آنها تاکید کرده است.
🔹وی همچنین به روش انجام این کار انتقاد کرد و آن را غیرشفاف و توهینآمیز دانست. به گفته ولته، حذف نام توسعهدهندگان از فهرست بدون اطلاعرسانی عمومی و با استفاده از روشهای پنهانی، نشاندهنده بیاحترامی به کار و تلاش این افراد و همچنین خدشهدار شدن اعتماد در جامعه توسعهدهندگان است.
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
شرکت jetbrains که ادعا داره IDE Rider محبوب ترین IDE برای .net و تولید بازی است
این IDE را برای استفاده غیر تجاری رایگان کرده
خدایبش استفاده میکنید؟ باور کن رو دستتش باد کرده 😁
اگر راست میگی PyCharm را رایگان کن
https://www.jetbrains.com/rider/
این IDE را برای استفاده غیر تجاری رایگان کرده
خدایبش استفاده میکنید؟ باور کن رو دستتش باد کرده 😁
اگر راست میگی PyCharm را رایگان کن
https://www.jetbrains.com/rider/
Forwarded from PhiloLearn | فیلولرن
از خوبی های اینکه open-webui با داکر اجرا میشه اینه که میتونید از طریق شبکه محلی به ollama دسترسی داشته باشید با یکم ور رفتن با چیزای مختلف مثل socat یا ابزار های مفید یا حتی خود داکر
#ollama #ai
@PhiloLearn
#ollama #ai
@PhiloLearn
Forwarded from DevTwitter | توییت برنامه نویسی
#کدبوک
موضوعات اصلی کتاب شامل:
مفاهیم پایه پردازش زبان طبیعی و یادگیری عمیق
معماری ترانسفورمر و اجزای آن
نحوه آموزش و تنظیم مدلهای زبانی
پیادهسازی عملی یک LLM از صفر
تکنیکهای بهینهسازی و مقیاسپذیری
روشهای ارزیابی عملکرد مدل
چالشهای پیشرو در توسعه LLMها
نکات عملی برای پیادهسازی موفق
این کتاب برای:
متخصصان هوش مصنوعی
دانشجویان یادگیری ماشین
توسعهدهندگانی که میخواهند وارد حوزه LLM شوند
مناسب است و با رویکردی عملی و گام به گام، مفاهیم پیچیده را به شکلی قابل فهم توضیح میدهد.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
موضوعات اصلی کتاب شامل:
مفاهیم پایه پردازش زبان طبیعی و یادگیری عمیق
معماری ترانسفورمر و اجزای آن
نحوه آموزش و تنظیم مدلهای زبانی
پیادهسازی عملی یک LLM از صفر
تکنیکهای بهینهسازی و مقیاسپذیری
روشهای ارزیابی عملکرد مدل
چالشهای پیشرو در توسعه LLMها
نکات عملی برای پیادهسازی موفق
این کتاب برای:
متخصصان هوش مصنوعی
دانشجویان یادگیری ماشین
توسعهدهندگانی که میخواهند وارد حوزه LLM شوند
مناسب است و با رویکردی عملی و گام به گام، مفاهیم پیچیده را به شکلی قابل فهم توضیح میدهد.
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
Forwarded from DevTwitter | توییت برنامه نویسی
مثال از Best Practices در SQL Query
بهینهسازی کوئریها در دیتابیسهای بزرگ اهمیت فوقالعادهای داره. مثالی که در تصویر گذاشتم رو ببینید:
بهینهسازی کوئریهای SQL باعث بهبود عملکرد و کاهش استفاده غیرضروری از منابع میشه. با حذف subqueryهای غیرضروری و استفاده از Joinهای بهینه و Group By، میتونید کوئریهای سریعتر و کاراتری داشته باشید. همچنین، استفاده از Index روی ستونهای پرکاربرد مثل user_id و post_id میتونه زمان اجرای کوئریها رو به شدت کاهش بده.
همیشه بهینهسازی رو در اولویت قرار بدید، چون هر میلیثانیه اهمیت داره!
@DevTwitter | <Saber Qadimi/>
بهینهسازی کوئریها در دیتابیسهای بزرگ اهمیت فوقالعادهای داره. مثالی که در تصویر گذاشتم رو ببینید:
بهینهسازی کوئریهای SQL باعث بهبود عملکرد و کاهش استفاده غیرضروری از منابع میشه. با حذف subqueryهای غیرضروری و استفاده از Joinهای بهینه و Group By، میتونید کوئریهای سریعتر و کاراتری داشته باشید. همچنین، استفاده از Index روی ستونهای پرکاربرد مثل user_id و post_id میتونه زمان اجرای کوئریها رو به شدت کاهش بده.
همیشه بهینهسازی رو در اولویت قرار بدید، چون هر میلیثانیه اهمیت داره!
@DevTwitter | <Saber Qadimi/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
I'm Glad I Did It in Go
🟢 خلاصه مقاله:
Thorsten، نویسندهی کتاب "نوشتن یک مفسر در زبان Go"، در بازخوانی تجربههای خود هشت سال پس از انتشار کتاب، به ارزیابی دلایل انتخاب زبان برنامهنویسی Go برای نگارش کتاب پرداخته است. او بیان میکند که Go به دلیل سادگی، خوانایی بالا و امکانات متعدد که برای نوشتن کدهای تمیز و مدیریت خطاها به شیوهای واضح و مثالزدنی فراهم میآورد، گزینهای ایدهآل بوده است. طراحی Go با اهداف معین برای کاهش پیچیدگی برنامهنویسی توزیعشده و همچنین تسهیل پذیرش و درک فناوری توسط برنامهنویسان در سراسر جهان، آن را به گزینه ای مناسب برای نگارش کتاب تبدیل کرده است. در نتیجه، او دریافته که استفاده از Go نه تنها به افزایش کارایی در توسعه نرمافزار کمک کرده بلکه به شکلگیری پایگاه خوانندگانی گسترده و علاقهمند نیز منجر شده است.
🟣لینک مقاله:
https://golangweekly.com/link/160749/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
I'm Glad I Did It in Go
🟢 خلاصه مقاله:
Thorsten، نویسندهی کتاب "نوشتن یک مفسر در زبان Go"، در بازخوانی تجربههای خود هشت سال پس از انتشار کتاب، به ارزیابی دلایل انتخاب زبان برنامهنویسی Go برای نگارش کتاب پرداخته است. او بیان میکند که Go به دلیل سادگی، خوانایی بالا و امکانات متعدد که برای نوشتن کدهای تمیز و مدیریت خطاها به شیوهای واضح و مثالزدنی فراهم میآورد، گزینهای ایدهآل بوده است. طراحی Go با اهداف معین برای کاهش پیچیدگی برنامهنویسی توزیعشده و همچنین تسهیل پذیرش و درک فناوری توسط برنامهنویسان در سراسر جهان، آن را به گزینه ای مناسب برای نگارش کتاب تبدیل کرده است. در نتیجه، او دریافته که استفاده از Go نه تنها به افزایش کارایی در توسعه نرمافزار کمک کرده بلکه به شکلگیری پایگاه خوانندگانی گسترده و علاقهمند نیز منجر شده است.
🟣لینک مقاله:
https://golangweekly.com/link/160749/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Thorstenball
Glad I did it in Go
Go, the greatest teaching language?
Forwarded from Go Casts 🚀
تا حالا شده در محیط کار احساس ناکافی بودن کنید؟ یا اینکه از سمت مدیرتون فیدبک ضعیف بودن دریافت کنید؟ یا حتی اعتماد به نفس تون رو از دست داده باشید که احتمالا من برای این کار خوب نیستم؟
همین اول کار بگم بهتره که تلاش کنید «اعتماد به نفس» رو درونی کنید، وابسته ش نکنید به عوامل خارجی و یا فیدبک دیگران. من نمیگم «غرور کاذب» داشته باشید، نه. ولی «اعتماد به نفس» اگه در شما درونی باشه، بهتون کمک میکنه در مواجهه با اتفاقات تصمیم درستی بگیرید، و جای اینکه در خودتون به دنبال تغییر باشید، در محیط دنبال تغییر بگردید.
اگه فیدبک بدی گرفتید از مدیرتون قبل از اینکه به فکر سرزنش خودتون باشید و یا حتی نکوهش مدیر، ببینید چه قسمت هایی از پروسه کاری و تعامل تون با مدیر مشکل داره، سعی کنید اول نحوه تعامل تون رو اصلاح کنید و یا پروسه هایی که به طور روزمره در کارتون برای انجام تسک ها دارید رو بازبینی کنید.
به طور مثال میگم، دوست عزیزی چند وقت پیش ناراحت بود از اینکه کدی که نوشته شده، توسط مدیرش بطور کامل بازنویسی شده، و این موضوع باعث شده که احساس خوبی نداشته باشه.
یا میگفت که شخص پروداکت تغییرات زیادی درخواست میده در حین کار در حالیکه در نهایت مسئولیت تغییرات رو هم نمیپذیره.
خب من حدس میزنم که در این مورد نه مدیر فنی مقصره و نه شخص برنامه نویس، اینجا پروسه تعامل و انجام تسک مشکل داره، تسک بهتره قبل از انجام refine بشه از نظر بیزینسی و داکیومنت بشه و همچنین قبل از انجام حتما solution design فنی داشته باشه. شرکت بهتره ساختار و چارچوب code review داشته باشه و فرآیند کد ریویو بصورت زود به زود انجام بشه.
خیلی اقدامات وجود داره که میتونه روند کاری شما و تیم و شرکت تون رو بهتر کنه، دنبال مقصر نباشید، جنگ روانی و اعصاب برای خودتون و دیگران ایجاد نکنید. با اراده تلاش کنید پروسه های تعاملی و کاری رو بهبود بدید و در این مورد با مدیرتون خیلی شفاف صحبت کنید.
@gocasts
همین اول کار بگم بهتره که تلاش کنید «اعتماد به نفس» رو درونی کنید، وابسته ش نکنید به عوامل خارجی و یا فیدبک دیگران. من نمیگم «غرور کاذب» داشته باشید، نه. ولی «اعتماد به نفس» اگه در شما درونی باشه، بهتون کمک میکنه در مواجهه با اتفاقات تصمیم درستی بگیرید، و جای اینکه در خودتون به دنبال تغییر باشید، در محیط دنبال تغییر بگردید.
اگه فیدبک بدی گرفتید از مدیرتون قبل از اینکه به فکر سرزنش خودتون باشید و یا حتی نکوهش مدیر، ببینید چه قسمت هایی از پروسه کاری و تعامل تون با مدیر مشکل داره، سعی کنید اول نحوه تعامل تون رو اصلاح کنید و یا پروسه هایی که به طور روزمره در کارتون برای انجام تسک ها دارید رو بازبینی کنید.
به طور مثال میگم، دوست عزیزی چند وقت پیش ناراحت بود از اینکه کدی که نوشته شده، توسط مدیرش بطور کامل بازنویسی شده، و این موضوع باعث شده که احساس خوبی نداشته باشه.
یا میگفت که شخص پروداکت تغییرات زیادی درخواست میده در حین کار در حالیکه در نهایت مسئولیت تغییرات رو هم نمیپذیره.
خب من حدس میزنم که در این مورد نه مدیر فنی مقصره و نه شخص برنامه نویس، اینجا پروسه تعامل و انجام تسک مشکل داره، تسک بهتره قبل از انجام refine بشه از نظر بیزینسی و داکیومنت بشه و همچنین قبل از انجام حتما solution design فنی داشته باشه. شرکت بهتره ساختار و چارچوب code review داشته باشه و فرآیند کد ریویو بصورت زود به زود انجام بشه.
خیلی اقدامات وجود داره که میتونه روند کاری شما و تیم و شرکت تون رو بهتر کنه، دنبال مقصر نباشید، جنگ روانی و اعصاب برای خودتون و دیگران ایجاد نکنید. با اراده تلاش کنید پروسه های تعاملی و کاری رو بهبود بدید و در این مورد با مدیرتون خیلی شفاف صحبت کنید.
@gocasts
Forwarded from DevTwitter | توییت برنامه نویسی
امنیت پسوردها با استفاده از Salt و Pepper
در دنیای دیجیتال امروز، امنیت اطلاعات شخصی و حساس یک اولویت اساسی است. یکی از مهمترین بخشهای این امنیت، نحوه مدیریت پسوردها است. امروز میخواهم در مورد دو مفهوم مهم در این زمینه، یعنی SaltوPepper صحبت کنم.
۱. Salt
سالت یک مقدار تصادفی است که به پسورد کاربر اضافه میشود قبل از اینکه آن را هش کنیم. این کار به جلوگیری از حملات Rainbow Table کمک میکند، زیرا حتی اگر دو کاربر پسورد یکسانی داشته باشند، با داشتن Saltهای مختلف، هشهای متفاوتی تولید خواهند کرد.
به عنوان مثال، در PHP میتوانیم از تابع password_hash استفاده کنیم:
خروجی این تابع به شکل زیر خواهد بود:
$2y$11$KIXqJCD7UgxE2ZmRkU8DeOeXeP5.h6yDkpH2Slbdm/o7NRlfdEme6
این رشته چهار قسمت دارد:
1. نوع الگوریتم (
2. هزینه (Cost) (
3. سالت (Salt) (
4. پسورد هش شده
۲. Pepper
پپر یک مقدار ثابت و محرمانه است که به پسورد اضافه میشود، اما بر خلاف Salt، این مقدار در پایگاه داده ذخیره نمیشود. در عوض، این مقدار در کد برنامه نویسی (Application Code) قرار میگیرد.
به عنوان مثال، در کد زیر:
در اینجا، پسورد کاربر ابتدا با Pepper ترکیب میشود و سپس هش میشود. این کار به امنیت بیشتر پسوردها کمک میکند و حتی اگر یک پایگاه داده دزدیده شود، مقدار Pepper میتواند به عنوان یک لایه امنیتی اضافی عمل کند.
@DevTwitter | <Firoozeh Daeizadeh/>
در دنیای دیجیتال امروز، امنیت اطلاعات شخصی و حساس یک اولویت اساسی است. یکی از مهمترین بخشهای این امنیت، نحوه مدیریت پسوردها است. امروز میخواهم در مورد دو مفهوم مهم در این زمینه، یعنی SaltوPepper صحبت کنم.
۱. Salt
سالت یک مقدار تصادفی است که به پسورد کاربر اضافه میشود قبل از اینکه آن را هش کنیم. این کار به جلوگیری از حملات Rainbow Table کمک میکند، زیرا حتی اگر دو کاربر پسورد یکسانی داشته باشند، با داشتن Saltهای مختلف، هشهای متفاوتی تولید خواهند کرد.
به عنوان مثال، در PHP میتوانیم از تابع password_hash استفاده کنیم:
$password = "Test1234";
$options = [
'cost' => 11
];
$hashed_password = password_hash($password, PASSWORD_BCRYPT, $options);
خروجی این تابع به شکل زیر خواهد بود:
$2y$11$KIXqJCD7UgxE2ZmRkU8DeOeXeP5.h6yDkpH2Slbdm/o7NRlfdEme6
این رشته چهار قسمت دارد:
1. نوع الگوریتم (
$2y$)2. هزینه (Cost) (
11$)3. سالت (Salt) (
KIXqJCD7UgxE2ZmRkU8DeOeXeP5.)4. پسورد هش شده
۲. Pepper
پپر یک مقدار ثابت و محرمانه است که به پسورد اضافه میشود، اما بر خلاف Salt، این مقدار در پایگاه داده ذخیره نمیشود. در عوض، این مقدار در کد برنامه نویسی (Application Code) قرار میگیرد.
به عنوان مثال، در کد زیر:
// config.conf
$pepper = "PT0s!NsO9";
// register.php
$pwd = $_POST['password'];
$pwd_peppered = hash_hmac("sha256", $pwd, $pepper);
$pwd_hashed = password_hash($pwd_peppered, PASSWORD_ARGON2ID);
add_user_to_database($username, $pwd_hashed);
در اینجا، پسورد کاربر ابتدا با Pepper ترکیب میشود و سپس هش میشود. این کار به امنیت بیشتر پسوردها کمک میکند و حتی اگر یک پایگاه داده دزدیده شود، مقدار Pepper میتواند به عنوان یک لایه امنیتی اضافی عمل کند.
@DevTwitter | <Firoozeh Daeizadeh/>