<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Saber mazooji</title>
        <link>https://virgool.io/feed/@sabermazoji</link>
        <description>یه برنامه نویس ? عاشق فرانت وب</description>
        <language>fa</language>
        <pubDate>2026-06-17 02:58:23</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/19588/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Saber mazooji</title>
            <link>https://virgool.io/@sabermazoji</link>
        </image>

                    <item>
                <title>شرح Utility Types در تایپ اسکریپت بخش دوم</title>
                <link>https://virgool.io/@sabermazoji/%D8%B4%D8%B1%D8%AD-utility-types-%D8%AF%D8%B1-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-pt12spbqhq9j</link>
                <description>در پست قبلی ما تایپ های Partial,Required,Readonly,Record,Pick,Omit رو یاد گرفتیم و در ادامه‌ می‌خوایم با Utility Types های دیگه آشنا بشیم. https://virgool.io/@sabermazoji/%D8%B4%D8%B1%D8%AD-utility-types-%D8%AF%D8%B1-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-sdsfgwt92mfz 7.Exclude&lt;Type, ExcludedUnion&gt;تایپ  Exclude دو پارامتر ورودی داره اولی تایپیه که می‌خوایم تا عمل Exclude یا حذف روش انجام بشه و دومی تایپیه که بر اساس اون بر روی تایپ اولی Exclude انجام میشه.Exclude به طور ساده میاد تایپ دومی رو چک میکنه و موارد یکسانی که در تایپ اول وجود داره رو حذف می‌کنه پس Exclude به‌ صورتی عمل حذف رو انجام میده Exclude type sample8.Extract&lt;Type, Union&gt;تایپ extract هم از اسمش معلومه پارامتر اول تایپ رو می‌گیره و پارامتر دوم تایپی که می‌خوایم استخراج کنیم... Extract type sample لاین اول رو دقت کنید با a,fرو خواستیم از تایپ اول بگیریم چون f وجود نداشته فقط a برگشته.9.NonNullable&lt;Type&gt;این تایپ null و undefined رو از تایپی که بهش پاس دادیم حذف می‌کنه NonNullable type sample10.Parameters&lt;Type&gt;پارامتر اول تایپی از نوع Function می‌گیره و تایپی در قالب یک آرایه از پارامتر‌های آن رو برمیگردونه.یعنی تمامی پارامترهای آن در یک آرایه Parameters type sampleلاین 5 رو دقت کنید تابع ما پارامتر s با تایپ string داره پس ما تایپ [&quot;string&quot;] رو خواهیم داشت که به شیوه استفاده می‌شهtype T1 = Parameters&lt;(s: string) =&gt; void&gt;
const myStringArray:T1=[&#039;saber&#039;]11.ConstructorParameters&lt;Type&gt;پارامتر اول این تایپ  Constructor هست و  آرایه‌ای از پارامتر های Constructor را بعنوان تایپ بر‌‌می‌گردونه ConstructorParameters type sample تایپ های ErrorConstructor , FunctionConstructor , RegExpConstructor کانستراکتور تایپ‌های تایپ اسکریپت هستند و لازم به تعریف ندارنددر لاین 1 ما اومدیم یک اینترفیس کانستراکتور تعریف کردیم و در لاین 10 به تایپ ConstructorParameters پاس دادیم و خروجی ما تایپی از پارامتر های کانستراکتور در یک آرایه هست.12.ReturnType&lt;Type&gt;همونطور از اسمش معلومه که تایپ بازگشتی تایپمون رو برمی‌گردونه ReturnType type sampleبه تایپ های برگشتی دقت کنیدبعنوان مثال لاین 4 خروجی void هستش پس تایپ ما تبدیل به void می‌شود.پایان بخش دوم :)برای اینکه حجم مطلب زیاد نشه و خسته‌تون نکنه  بخش سوم و نهایی هم به‌زودی می‌نویسم که در اون قراره utility type های زیر رو توضیح بدمThisParameterType&lt;Type&gt;OmitThisParameter&lt;Type&gt;ThisType&lt;Type&gt;InstanceType&lt;Type&gt;Uppercase&lt;StringType&gt;Lowercase&lt;StringType&gt;Capitalize&lt;StringType&gt;Uncapitalize&lt;StringType&gt;ممنونم که وقت گذاشتید و مطلب رو خوندید انتقاد یا اشکالی در نوشته‌هام دیدید خوشحال می‌شم که در نظرات بگید.</description>
                <category>Saber mazooji</category>
                <author>Saber mazooji</author>
                <pubDate>Wed, 18 Aug 2021 23:10:40 +0430</pubDate>
            </item>
                    <item>
                <title>شرح Utility Types در تایپ اسکریپت بخش اول</title>
                <link>https://virgool.io/@sabermazoji/%D8%B4%D8%B1%D8%AD-utility-types-%D8%AF%D8%B1-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-sdsfgwt92mfz</link>
                <description>گاهی وقت ها در تایپ اسکریپت , نوع خاصی از type یا interface موجود نیازمون میشه با Utility Types ها ما می‌تونیم type یا interface موجود رو به شکل خاصی تغییر بدیم میشه گفت یک instance با تغییرات و شرطهایی ازشون بسازیم....تعداد Utility Types ها زیاده به همین خاطر در چندین بخش اونا رو توضیح میدم1.Partial&lt;Type&gt;تایپ partial تایپ‌های شما رو اختیاری میکنه(optional)به صورتی که تایپ خود را به partial پاس بدید و مقدار برگشتی آن تایپی تماما optional استPartial&lt;Type&gt; Partial Type sample codeبه تابع updateTodo در لاین 6 دقت کنید که argument دوم آن همان تایپ ‌Todo اما از جنس Partial می‌باشد به همین خاطر در لاین 15 وقتی که تابع رو call میکنیم parameter دوم optional شده و می‌توانیم title رو پاس ندیم.2.Required&lt;Type&gt;تایپ Required همان طور از اسمش پیداست تمامی مقادیر رو اجباری میکنه دقیقا برعکس Partial Required type sample code همانطور می‌بینید در لاین 8 وقتی که b رو به آبجکت اضافه نکرده‌ایم چون اینترفیس Props اجباری شده است خطا دریافت می‌کنیم.3.Readonly&lt;Type&gt;این utility Type یک اینترفیس یا تایپ را  Readonly می‌کنه! یعنی وقتی به متغیری این نوع تایپ داده بشه به هیچ صورت تغییر داده نمیشه و فقط خواندنیه....ReadOnly Type sample code در لاین 9 مقدار title تغییر داده نمی‌شه چون readonly هستش4.Record&lt;Keys,Type&gt;تایپ record میتونه دو تایپ رو با هم ترکیب کنه به صورتی که پارامتر اول  key و پارامتر دوم type هستش برای درک بهتر دو نمونه ببینیمRecord type first sample تایپ ‌‌Colors با Record تعریف شده و چندتا key اول گرفته بعد تایپ اونا رو دریافت کرده خروجی این تایپ همانند لاین 5 هستشدقت کنید لاین 5 ربطی به تایپ نداره فقط نمونه‌ای از خروجی Colors هستش...نمونه دوم:Record type second sample  5.Pick&lt;Type, Keys&gt;تایپ pick میتونه خیلی پرکاربرد باشهاین تایپ بر اساس انتخاب شما تایپ دلخواهتان را برمیگردونه نحوه استفاده از آن به این صورته که پارامتر اول type رو از شما می‌گیره و پارامتر دوم آن  keys . که مقادیری هستند که برای شما از دل type انتخاب می‌کنه...به زبونه ساده بهش می‌گید بره از یک تایپ یک یا چندتا مقدار برداره و تایپ جدیدی رو برگردونهPick type sampleدر لاین 7 ما از اینترفیس Todo  مقادیر title , completed رو انتخاب کرده‌ایم...در نتیجه یک تایپ جدید داریم که شامل title , completed می‌باشدخیلی ساده با Pick می‌تونیم از نوشتن تایپ های تکرار پرهیز کنیم ایزی پیزی :)6.Omit&lt;Type, Keys&gt;تایپ omit به صورته که یک تایپ از تایپ مورد نظر به غیر از مقادیر keys به شما برمیگردونه...یعنی همه ی type به غیر از keys تقریبا شبیه pick هستش در pick ما انتخاب می‌کردیم کدوم رو برداریم اما در omit ما مشخص می‌کنیم کدوم رو برنداریم :)Omit type sampleهمانطور می‌بینید مقدار description رو از انتخابمون حذف کردیم و تایپ جدیدمون فقط شاملtitle,completed,createdAt  می‌باشد.امیدوارم تونسته باشم با utility تایپ ها آشناتون کنمهمانطور در مقدمه گفتم utility types در چند بخش توضیح می‌دم پس منتظر بخش‌های دیگه هم باشید. اگردیدیدجاییروبهاشتباهتوضیحدادمدرکامنتالطفکنیدبگید:)  https://virgool.io/@sabermazoji/%D8%B4%D8%B1%D8%AD-utility-types-%D8%AF%D8%B1-%D8%AA%D8%A7%DB%8C%D9%BE-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-pt12spbqhq9j </description>
                <category>Saber mazooji</category>
                <author>Saber mazooji</author>
                <pubDate>Fri, 13 Aug 2021 19:59:06 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@sabermazoji/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-qfkr8uoodbn4</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/evmbc2djutxu-sISKR.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۲,۲۸۷ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۲۱ مرتبه پسندیدند و  ۱۳ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۱۴ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۱۲,۶۳۴ بار خوانده شدند و ۷۸۲,۸۶۸ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۱۰۷۳۳۰۴۱ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۳۸,۲۱۶ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۱۰۷۳۳۰۴۱ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>Saber mazooji</category>
                <author>Saber mazooji</author>
                <pubDate>Mon, 22 Mar 2021 23:48:34 +0430</pubDate>
            </item>
                    <item>
                <title>افزودن SSL  به  localhost</title>
                <link>https://virgool.io/@sabermazoji/%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86-ssl-%D8%A8%D9%87-localhost-lz5huo11bb4t</link>
                <description>ssl certificateهمیشه یکی از دغدغه هام این بود که به لوکال هاست رو https کنم یا به عبارت دیگری براش ssl certificate  بزارم!خب درسته طبیعتا روش ها و نوشته‌های زیادی هستش که این مورد رو آموزش میدن ولی هیچوقت جوابگو نبودن!من  https رو برای اجرا کردن pwa ( progressive web app ) نیاز داشتم   همیشه مجبور میشدم پروژه رو روی ngork,vercel,github page دپلوی کنم و وقت زیادی می‌گرفتم, بگذریم بریم تو دل کارنصب mkcertبا نصب mkecert می تونیم  ssl certificate   درست کنیمبرای نصبش تو os های مختلف به صفحه گیت هابش مراجعه کنید https://github.com/FiloSottile/mkcert#installation بعد نصب شما دستور زیر را اجرا کنیدmkcert -installباید همچین نتیجه‌ای داشته باشیمCreated a new local CA at &quot;/Users/****/Library/Application Support/mkcert&quot; ?The local CA is now installed in the system trust store! ⚡️The local CA is now installed in the Firefox trust store (requires browser restart)! ?وارد root پروژه خودتون بشید و با دستور زیر ssl رو بسازید به server خودتون متصل کنیددر این مثال سرور من 127.0.0.1 هستش  mkcert localhost 127.0.0.1تا این مرحله ما باید دو فایل ایجاد شده با پسوند pem رو داشته باشید. الان سرورتون با طعم https آمادست,البته سرور بستگی به خودتون داره میتونه هرچی باشه python,php,node js یا هرچی... من نمونه سرور node js رو اجرا میکنمسرور node jsخب طبیعتا شما node js رو نصب دارید اگر هم نصب ندارید از اینجا می تونید دانلودش کنید  پکیج http-server رو با بصورت گلوبال نصب کنید npm i -g http-server با دستور زیر می تونید سرور رو اجرا کنیدhttp-server -S -o -C &quot;localhost+2.pem&quot; -K &quot;localhost+2-key.pem&quot;امیدوارم مفید بوده باشهاشتباهی در مطلب دیدید خوشحال می‌شم در نظرات بفرمایید.</description>
                <category>Saber mazooji</category>
                <author>Saber mazooji</author>
                <pubDate>Thu, 04 Feb 2021 15:43:24 +0330</pubDate>
            </item>
                    <item>
                <title>پروتکل امنیتی تلگرام mtproto</title>
                <link>https://virgool.io/@sabermazoji/%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-mtproto-skstjdu7t7mk</link>
                <description>سلام :)دومین پست ویرگولی من و باز هم در تخصص خودم نیست (متخصص HTML) :|خب این تحقیق و پژوهش سال 97 من برای دانشگاهه شاید بروز نباشه اما دوست داشتم منتشر کنم!مقدمهاحتمالا شما هم مثل من هر از چند گاهی نگران امنیت داده هایتان در اینترنت هستید. این نوع نگرانی ها به سراغ هر کسی می تواند بیاید. حتی اگر فعالیت غیرقانونی یا سیاسی هم انجام نداده باشید هیچ وقت دلتان نمی خواهد که حریم خصوصی تان خدشه دار شود.حفظ حریم خصوصی در فضای مجازی همیشه یکی از مهمترین موضوعاتی بوده که به آن توجه داشته ام. همیشه رفتارهای سایت ها یا سرویس های اینترنتی را که حریم خصوصی کاربران را نقض می کردند مورد انتقاد من بوده.امروزه تلگرام در ایران پر طرفدارترین سرویس پیام رسانی می باشد که اخیرا در مورد آن اخبار ضد و نقیضی شنیده ایم. اینکه آیا تلگرام امنیت پایینی دارد؟ یا داده های ما می تواند کاملا شفاف در اختیار شخص ثالث و افراد سودجو قرار بگیرد.من در این مقاله نتیجه تحقیقاتم در زمینه امنیت و حریم خصوصی سرویس تلگرام را با شما به اشتراک می گذارم.پروتکل mtprotoتلگرام برای ایجاد یک ارتباط ایمن و سریع از پروتکل قدرتمند MTProto استفاده می کند. پروتکلی که امنیت را با سرعت بالا تظمین می کند که حتی در ضعیف ترین ارتباطات اینترنت نیز بخوبی کار می کند. این پروتکل توسط نیکلای دورف بر مبنای رمزنگاری ای‌ئی‌اس ۲۵۶ بیتی متقارن، رمزنگاری آراس‌ای ۲۰۴۸ و پروتکل تبادل کلید دیفی-هلمن است ابداع گردید.این پروتکل برای نرم افزاهای موبایلی طراحی شده است که از طریق api به سرور متصل می شوند و باید به این نکته هم توجه کرد که یک مرورگر به عنوان اپلیکیشن موبایل قلمداد نمی شود.تاکید تلگرام بر امنیت این پروتکلسازندگان تلگرام بر امنیت برنامه های خود تأکید بسیاری دارند. به تازگی جایزه سیصد هزار دلاری برای یافتن باگ بر روی تلگرام اعلام شده است که خود نشان دهنده اطمینان برنامه نویسان تلگرام دارد. در بلاگ تلگرام برندگان این جایزه اعلام می‌شوند. در سال ۲۰۱۵ شرکت امنیتی غیرانتفاعی Electronic Frontier Foundation رتبه ۴ از ۷ را به بخش پیام رسان و رتبه ۷ از ۷ را به بخش secure chat این نرم‌افزار داد.این پروتکل در واقع به سه بخش مستقل تقسیم بندی می شود:· :API query language  روشی است که ب موجب آن درخواست های api و پاسخ های سرور به پیام های باینری تبدیل می شوند.· :Cryptographic (authorization) layerروشی است که در آن پیام ها قبل از اینکه وارد پروتوکل انتقال داده ها شوند رمزنگاری می شوند.· : Transport componentپروتوکل حمل و نقل داده ها از طریق یکی از پروتکل های شبکه مانندhttp, https, tcp ,udp:رمزنگاری پیام encryptionencryption  رمزنگاری پیامهر پیامی که از طریق این پروتکل رمزنگاری می شود همیشه شامل داده های زیر برای رمزگشایی به منظور ایجاد سیستم مقاوم در برابر مشکلات شناخته شده می باشد:server salt – 64bitsession idشماره ترتیبی پیامطول پیامزمان ارسالالبته تلگرام متذکر شده است که در وضعیت چت امن (secure chat) چندین لایه رمزنگاری دیگر قبل از موارد بالا به پیام ها اضافه می کند که در به end-to-end encryption معروف می باشد.secure chat  یا چت ایمناگر به دنبال امنیت بیشتری هستید تلگرام این روش ارتباطی را به کاربران خود پیشنهاد می کند. تلگرام در قابلیت چت ایمن خود از تکنولوژی end-to-end encryption استفاده می کند. یعنی تنها کسی که قادر به خواندن پیام های دریافتی است خود شما هستید. تیم تلگرام مدعی است که حتی آنها نیز نمی توانند پیام های شما را رمزگشایی کنند. کسی نمی تواند پیام دریافتی از شما را به کس دیگری ارسال کند. وقتی شما پیامی را حذف می کنید در طرف دیگر نیز حذف خواهد شد. پیام ها می توانند بصورت خودکار از هر دو طرف حذف شوند. پیام هایی که از این طریق رد و بدل می شوند در سرورهای کلاد تلگرام ذخیره نمی شوند، به این معنی است که پیام ها فقط در موبایل یا کامپیوتری که از آن طریق ارسال و دریافت شده اند وجود دارد.اما secure chat چگونه کار می کند؟وقتی یک چت ایمن ایجاد می شود، ابزارهای شرکت کننده در چت یک کلید مخصوص رمزنگاری را بوسیله روش پروتکل تبادل کلید دیفی-هلمن مبادله می کنند. بعد از اینکه اتصال امن end-to-end ایجاد شد تلگرام یک تصویر برای شبیه سازی کلید رمزنگاری تولید می کند. سپس دو طرف چت می توانند تصویر بوجود آمده را باهم مقایسه کنند. اگر دو تصویر طرفین برابر با هم باشند می توان اطمینان داشت که یک ارتباط امن بوجود آمده است و هیچ واسطه ای (man in the middle) دسترسی به اطلاعات مراوده شده را ندارد.نسخه جدیدتر نرم افزارهای تلگرام یک تصویر بزرگتر را به مراه یک کلید متنی درهم ریخته نمایش می دهد. البته این زمانی است که هر دو طرف به آخرین نسخه بروز کرده باشند. اگر می خواهید مطمئن شوید که از یک ارتباط امن استفاده می کنید، همیشه دو تصویر را بصورت دقیق با هم مقایسه کنید. بهترین حالت این است که این مقایسه را در اولین ملاقات حضوری خود انجام دهید.پس به گفته تلگرام چت ایمن بخاطر استفاده از شیوه رمزنگاریclient-client امنیت بالاتری نسبت به چت معمولی خواهد داشت چون در حالت چت معمولی یک طرف کلید رمزنگاری در سرورهای تلگرام ذخیره می گردد.پروتکل تبادل کلید دیفی-هلمن چیست؟پروتکل تبادل کلید دیفی-هلمن، یک پروتکل رمزنگاری است که با استفاده از آن، دو نفر یا دو سازمان، می‌توانند بدون نیاز به هر گونه آشنایی قبلی، یک کلید رمز مشترک ایجاد و آن را از طریق یک مسیر ارتباطی غیر امن، بین خود تبادل نمایند. این پروتکل، اولین روش عملی مطرح شده برای تبادل کلید رمز در مسیرهای ارتباطی غیر امن است و مشکل تبادل کلید رمز در رمزنگاری کلید متقارن را آسان می‌سازد.این پروتکل، در سال ۱۹۷۶ توسط دو دانشمند رمزشناس به نام‌های ویتفیلد دیفی و مارتین هلمن طراحی شده و در قالب یک مقاله علمی منتشر گردیده است. مطرح شدن این پروتکل، گام مهمی در معرفی و توسعه رمزنگاری کلید نامتقارن به حساب می‌آید.جزئیات پروتکل دیفی-هلمندر فرمول‌های پیشنهادی اولیه این پروتکل، از گروه همنهشتی اعداد صحیح با پیمانه عدد اول p و عملگر ضرب اعداد صحیح استفاده شده است. در این گروه عددی، یک ریشه اولیه محاسبه می‌شود که آن را با g نشان می‌دهندسپس مراحل زیر که در شکل بالا هم نشان داده شده است، انجام می‌شود:1) مقدار عدد اول دلخواه بزرگ p (پیمانه عمل ضرب) و مقدار محاسبه شده برای g میان دو طرف رد و بدل می‌شود.2) هر یک از دو طرف یک عدد صحیح دلخواه a) و (b را به صورت پنهانی در نظر می‌گیرد.3) هر یک از دو طرف با استفاده از عمل توان پیمانه‌ای و مقادیر قبلی p) و g و مقدار پنهانی)، یک مقدار جدید محاسبه کرده A) و (B و برای طرف مقابل ارسال می‌کند.4) طرف اول با استفاده از مقادیر p و g و a و B، و طرف دوم با استفاده از مقادیر p و g و b و A، و با همان عمل توان پیمانه‌ای مقدار جدیدی را محاسبه می‌کنند. مقدار جدید محاسبه شده -چنانکه فرمول نشان می‌دهد- در دو طرف یکسان و همان کلید رمز مشترک است.توجه به دو نکته درباره این پروتکل لازم است: مقادیر a و b و مقدار مشترک محاسبه شده، هرگز مستقیماً از کانال ارتباطی عبور نمی‌کنند. بقیهٔ مقادیر یعنی p و g و A و B از کانال ارتباطی عبور می‌کنند و برای دیگران قابل دسترسی هستند. دشواری حل مسألهٔ لگاریتم گسسته تضمین می‌کند که مقادیر a و b و مقدار کلید رمز مشترک، با داشتن مقدار اعداد دیگر در عمل قابل محاسبه نباشد.امنیت پروتکل دیفی-هلمناصلا چرا امنیت داره؟؟؟؟؟؟امنیت این پروتکل مبتنی بر دشواری حل مسألهٔ لگاریتم گسسته است.در حال حاضر مسائل زیر باید در ارتباط با امنیت پروتکل دیفی-هلمن لحاظ گردد: بر اساس قدرت محاسباتی رایانه‌های امروزی، استفاده از عدد اول p با حدود ۳۰۰ رقم و اعداد a و b با حدود ۱۰۰ رقم می‌تواند شکستن امنیت این پروتکل و یافتن کلید رمز مشترک را در عمل غیر ممکن سازد.در عمل هر عدد اول بزرگی را نمی‌توان در این پروتکل به کار گرفت، بلکه لازم است عدد p مورد استفاده یک عدد اول امن باشد. در غیر این صورت شکستن امنیت این پروتکل و یافتن کلید رمز مشترک، با استفاده از الگوریتم‌هایی مانند الگوریتم پولیگ-هلمن، نسبتاً آسان و در زمان کمتری قابل انجام خواهد شد.اعداد پنهانی a و b باید به صورت عدد تصادفی تولید شوند و مولد عدد تصادفی مورد استفاده هم نباید تکرارپذیر و قابل پیش‌بینی باشد. در غیر این صورت، یافتن کلید رمز مشترک آسان‌تر و در زمان کمتری قابل انجام خواهد شد.مشکل شناسایی دو طرف در پروتکل دیفی-هلمنفرمول‌های پیشنهادی اولیه این پروتکل که در قسمت بالا ارائه شد، امکان شناسایی متقابل دو طرف را فراهم نمی‌سازد. به همین دلیل اگر طرف سومی روی خط ارتباطی و بین طرف اول و دوم قرار بگیرد، می‌تواند بدون اینکه شناسایی شود، با هر یک از دو طرف به طور جداگانه طبق پروتکل دیفی-هلمن به رد و بدل کلید رمز بپردازد. (به چنین نوع حمله‌ای، حمله مرد میانی گفته می‌شود). به این ترتیب طرف سوم خواهد توانست بدون اینکه طرف های اول و دوم متوجه شوند، تمام پیام‌های آن دو را بخواند که برای این کار کافی است ابتدا پیام هر یک از آن‌ها را با کلید رمز مربوط به خودش رمزگشایی کند و سپس با کلید رمز طرف دیگر رمزنگاری کرده و برایش ارسال کند.برای مقاوم کردن پروتکل دیفی-هلمن در مقابل این مشکل، لازم است که یک مکانیزم برای شناسایی دو طرف به مراحل این پروتکل اضافه شود. همین امر باعث شده است که پروتکل‌های مختلف شناسایی با استفاده از مکانیزم تبادل کلید دیفی-هلمن ارائه شود.سخن پایانی من در این نوشته :Dمتن بالا بخش هایی از مقاله ی دانشگاهیم بود که اون زمان منابع کمی به زبان فارسی وجود داشت و مجبور شدم بخش هایی رو دست و پا شکسته ترجمه کنم ....و قبول دارم که روند رمزنگاری هر پیام در تلگرام تغییر کرده و شاید متن بالا کامل نباشه چون زمانی که این رو می نوشتم mtproto ورژن 1 بود الان ورژن 2 هستشانتقاد پیشنهادی بود خوش حال میشم باهام در میون بزارید :) </description>
                <category>Saber mazooji</category>
                <author>Saber mazooji</author>
                <pubDate>Mon, 06 Apr 2020 00:20:50 +0430</pubDate>
            </item>
                    <item>
                <title>عملکرد مسدود يا action blocked در اينستاگرام</title>
                <link>https://virgool.io/academy-instagram/%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF-%D9%85%D8%B3%D8%AF%D9%88%D8%AF-%D9%8A%D8%A7-action-block-%D8%AF%D8%B1-%D8%A7%D9%8A%D9%86%D8%B3%D8%AA%D8%A7%DA%AF%D8%B1%D8%A7%D9%85-sxo8ofeqbat8</link>
                <description>چرا توسط اینستاگرام action blocked می شویم؟اینستاگرام قوانینی برای یافتن حساب های غیر واقعی یا هرز (spam) در نظر گرفته که با این قوانین تشخیص میده چه حساب هایی واقعی و چه حساب هایی غیر واقعی هستند و اگر اکانت شما رو اسپم تشخیص داد اکانت شما محدود می شود.محدودیت ها ممکنه از 24 ساعت تا 2 هفته طول بکشهاز افسانه تا واقعیت &quot; ریپورتم کامنت انگلیسی برام بزارید &quot;روزانه خیلی ها را می بینم که یه همچین درخواستی دارند که کاملا اشتباهه و مخالف اینمتقریبا تمامی قوانین اینستاگرام و انجمن های خارجی رو مطالعه کردم و همچین موردی وجود نداشت، پس عاجزانه درخواست دارم همچین پست هایی نزاریدخب الان می گید چرا من؟چرا اکانت من بلاک و ریپورت شده؟دلایلی که ممکنه باعث محدودیت پیج شما شده باشه:استفاده از برنامه های آنفالور یا لایک بگیر و مشابه آن استفاده از ربات های خودکار سازی پیج اینستاگراملایک و پست و کامنت کردن بیش از حد در طول یک ساعت یا در طول روزفالو و آنفالو کردن بیش از حد افراد در طول یک ساعت یا در طول روزموشن کردن (motion) افراد زیاد و ناشناس در کامنت پست هااستفاده زیاد از هشتگ در پست ها و کامنت هاتغییر ip متعدد استفاده از vpn (به علت مورد بالا)استفاده از یک اکانت در دستگاه های مختلفشکایات کاربران از شما (report)مزاحمت در دایرکت دیگران یا مزاحمت در قسمت نظرات پست هارعایت نکردن حقوق کپی رایت پست ها (مثلا بعضی از موزیک ها حقوق کپی رایت دارند)گذاشتن پست های غیر مجاز نظیر محتوای سکسیدر صورت رعایت نکردن هر یک از موارد بالا اکانت شما action blocked می شود.چه کنیم که ریپورت یا محدود نشویم و محدودیت ها چه چیزهایی هستند؟در اول سادست موارد بالا رو رعایت کنیم :Dبرای این مورد که مثلا چقدر لایک کنیم و... واقعا منبع معتبری پیدا نکردم اما سعی کنید که:در طول 60دقیقه کمتر از 50پست را لایک کنید و برای فالو و آنفالو 30 کاربردر طول 24ساعت کمتر از 250پست را لایک کنید و برای فالو و آنفالو 50 کاربربرای پست هایتان از هشتگ مناسب با تصویر و ویدیو استفاده کنید نه هشتگ های غیر مرتبط و اسپم! سعی کنیم 6 هشتگ بزاریمکامنت پشت سر هم نزاریم در 60 دقیقه کمتر از 10تاو اما...راه حل و رفع مشکل محدودیت یا ریپورت اینستاگراممطمئنم تا کنون راه حل های زیادی به شما برای حل کردن و فیکس کردن این مشکل ارائه کردن اما بهترین راه حل اینه که اول بدونید چرا محدود شدید و طبق علت بلاک شدن موارد زیر رو انجام بدیدبرنامه هایی نظیر آنفالویاب و لایک بگیر و همچنین ربات ها رو حذف کنید *تغییر رمز عبور! (اینکار باعث میشه حساب شما از اپلیکیشن های بالا خارج بشه)اگر بیوگرافی خودتون رو کامل نکردید همین حالا کامل کنید ( سعی کنید خودتون رو یک شخص حقیقی معرفی کنید تا یک شخص فیک بدون عکس و...) *اگر از WI-FI استفاده می کنید می تونید به mobile data سویچ کنید ( اینکار باعث تغییر ip شما می شه; که در اصل اینستاگرام ip شما رو بلاک میکنه نه حساب شما)در صورت ممکن حساب خود را به facebook اکانت خود لینک بدید (اینکار باعث معتبر شدن اکانت شما میشه) *اگر بعلت لایک و پست و کامنت و فالو و آنفالو بیش از حد محدود شدید 48ساعت سعی کنید یا هیچ فعالیتی انجام ندید یا فعالیت زیاد خودتون رو کم کنیدتمامی هشتگ های پست های اخیر خود رو پاک کنیدمشکل خود را به اینستاگرام گزارش دهید * تیر نهایی :| یکبار اپلیکیشن اینستاگرام خود رو حذف و دوباره از مارکت معتبر دانلود و نصب کنید( آخرین کارتون باشه)موارد بالا رو به ترتیب انجام ندهید!! ابتدا مشکل خود را بیابید بعد با توجه به مشکل و علت محدودیت مراحل بالا رو انجام بدید.سعی کنید موارد ستاره (*) دار را حتما انجام بدید.در پایانبعنوان برنامه نويس اولين پست ويرگوليم طبيعتا می بايست در مورد برنامه نويسی باشه اما به دلایلی گفتم در  مورد action block instagram (یا عده ای میگن ریپورت اینستاگرام) یک مطلب بنویسم.اگر ایرادی یا کمبودی یا انتقاد یا پیشنهادی داشتید خوشحال می شم در نظرات با من در میان بزارید.پ.ن: یکی از دغدغه هام این بود پست رو با زبون عامیانه بنویسم یا کتابی:|</description>
                <category>Saber mazooji</category>
                <author>Saber mazooji</author>
                <pubDate>Fri, 16 Aug 2019 17:31:57 +0430</pubDate>
            </item>
            </channel>
</rss>