<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های CodeLogy - کدلوژی</title>
        <link>https://virgool.io/feed/@codelogy</link>
        <description>ارائه مطالب و مقالات علوم کامپیوتر، برنامه نویسی، لینوکس و دنیای جذاب هک و امنیت - شبکه های اجتماعی ما zil.ink/codelogy</description>
        <language>fa</language>
        <pubDate>2026-06-17 02:33:46</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1748977/avatar/bJ8CtT.png?height=120&amp;width=120</url>
            <title>CodeLogy - کدلوژی</title>
            <link>https://virgool.io/@codelogy</link>
        </image>

                    <item>
                <title>امنیت سایبری vs امنیت اطلاعات</title>
                <link>https://virgool.io/@codelogy/%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B3%D8%A7%DB%8C%D8%A8%D8%B1%DB%8C-vs-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-lycpzsotkdu3</link>
                <description> اغلب می‌بینید که اصطلاحات امنیت سایبری و امنیت اطلاعات به جای یکدیگر استفاده می‌شوند.  به این دلیل است که در ابتدایی‌ترین شکل‌هایشان به یک چیز اشاره می‌کنند: محرمانه بودن، یکپارچگی و در دسترس بودن اطلاعات. اما یک تفاوت اساسی بین آنها وجود دارد که بر نحوه عملکرد سازمان شما تأثیر می گذارد.امنیت اطلاعات چیست؟اطلاعات در قلب هر سازمانی قرار دارد، چه سوابق تجاری، داده های شخصی یا مالکیت معنوی. می توان آن را در هر تعداد مکان نگهداری کرد و به طرق مختلف می توان به آن دسترسی داشت.  شما به احتمال زیاد به داده ها در رایانه کاری خود یا از طریق سوابق کاغذی دسترسی دارید، اما اطلاعات را می توان در بسیاری از مکان ها یافت.به عنوان مثال، داده ها را می توان روی دیسک های قابل جابجایی، لپ تاپ ها، سرورها، دستگاه های شخصی و سوابق فیزیکی نگهداری کرد.همه اینها باید ایمن نگه داشته شوند و فرآیند انجام آن امنیت اطلاعات نامیده می شود. به طور خاص، سازمان ها از محرمانه بودن، یکپارچگی و در دسترس بودن اطلاعات محافظت می کنند.در این زمینه، محرمانگی به اطلاعاتی اشاره دارد که فقط توسط اشخاص مجاز مشاهده می شود، یکپارچگی اطلاعات دقیق است و در دسترس بودن اطلاعات در صورت لزوم قابل دسترسی است.امنیت اطلاعات دو زیرمجموعه دارد.  سازمان‌ها باید از دارایی‌های فیزیکی از جمله محل خود و همچنین هر جای دیگری که اطلاعات حساس را می‌توان به صورت فیزیکی ذخیره کرد، محافظت کنند.دومین زیرمجموعه امنیت اطلاعات مربوط به حفاظت از اطلاعات الکترونیکی است, این امنیت سایبری است. نمونه هایی از امنیت اطلاعات امنیت اطلاعات شامل هر فرآیند یا فناوری است که برای محافظت از محرمانه بودن، یکپارچگی و در دسترس بودن اطلاعات استفاده می شود. این می تواند شامل موارد زیر باشد:فناوری ضد بدافزارخط مشی‌های امنیت اطلاعاتکنترل‌های دسترسی آموزش آگاهی کارکنانارزیابی‌های تأثیر حفاظت از داده‌هاکارت‌های کلیدی برای ورود به دفترقفل‌هایی برای کابینت‌های حاوی اطلاعات حساس. امنیت سایبری چیست؟ امنیت سایبری نوع خاصی از امنیت اطلاعات است که بر حفاظت از داده های الکترونیکی تمرکز دارد. بر روی اقداماتی تمرکز دارد که برای جلوگیری از دسترسی غیرمجاز به شبکه‌ها و سیستم‌های یک سازمان استفاده می‌شود.این اصطلاح اغلب برای اشاره به امنیت اطلاعات به طور کلی استفاده می شود، زیرا بیشتر نقض های داده شامل نفوذ به شبکه یا سیستم است.علاوه بر این، سازمان‌ها معمولاً داده‌های بیشتری را به صورت آنلاین نسبت به شکل فیزیکی ذخیره می‌کنند، به این معنی که اطلاعات بیشتری برای هدف‌گیری وجود دارد. نمونه هایی از امنیت سایبری امنیت سایبری هر فرآیند یا فناوری طراحی شده برای محافظت از داده های الکترونیکی را پوشش می دهد.  این می تواند شامل موارد زیر باشد:رمزگذاری داده‌هاگذرواژه‌ها VPN فیلترهای هرزنامهاحراز هویت چند عاملینرم افزار ضد بدافزار</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Sun, 30 Apr 2023 22:23:28 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری با پایتون</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-rkkbjvvwedof</link>
                <description>رمزنگاری یکی از راه های مهم برای حفاظت اطلاعات مهم و حساس است. در پست های قبلی در مورد رمزنگاری توضیح دادیم.رمزنگاری به دو دسته کلی تقسیم میشود:رمزنگاری های نامتقارن.رمزنگاری های متقارن.رمزنگاری نامتقارن:این رمزنگاری ها برای رمزنگاری از یک کلید و برای رمزگشایی از یک کلید دیگر استفاده میکنند که به کلید که برای رمزنگاری استفاده میشه رو public و کلید که برای رمزگشایی استفاده میشه رو privet مینامند.رمزنگاری متقارن:رمزنگاری های که عمل رمزگشایی و رمزنگاری رو با یک کلید انجام میدن را رمزنگاری متقارن می‌گویند. رمزنگاری متقارن خودش به چند بخش دیگه تبدیل میشه مثل stream, block و..... رمزنگاری های salsa20, chacha, aes, des, des3 مثااب از رمزنگاری متقارن هستند.چگونه در پایتون داده هایمان را رمزنگاری کنیم؟کتابخانه cryptography یک Module نه چندان دندون گیر برای پایتون است که با استفاده از این کتابخانه میتوان برای رمزنگاری دیتا استفاده کنیم.نحوه نصب ماژول cryptography :برای نصب این ماژول از دستور زیر استفاده میکنیم:اگر در نصب به مشکلی برخوردید(احتمالا بخاطر ورژن پایتون) از pycryptodome میتونیم استفاده کنیمساخت کلید رندم برای رمزنگاری دیتا:ما میتوینم برای رمزنگاری دیتا کلید رندم تولید کنیم که کتابخانه os برای ما این کارو راحت کرده:تابع urandom برای ما یک رشته بایت رندم با طول مشخص تولید میکنه:رمزنگاری دیتا با aes-256:رمزنگاری aes(Advance Encryption Standard) یک رمزنگاری متقارن است ما میخوایم یک دیتا رو با این الگوریتم رمزنگاری کنیم اول باید از cryptography.hazmat.primitives.ciphers چیزای که لازم داریم  که میشه Cipher, algorithms, modes رو ایمپورت میکنیم ما میخایم با aes-256 mode cbc دیتا مونو رمزنگاری کنیم و نیاز به یه کلید 32 بایت و  iv با طول 16 بایت لازم داریم:حالا باید یه شی از کلس Cipher بسازیم:ورودی اول نشون میده که ما میخوایم از الگوریتم AES با طول کلید 256 بیت استفاده کنیم و کلید رو بهش میدم در ورودی بعد هم میگیم میخوایم از مود CBC استفاده کنیم و IV بهش میدیم در مرحله بعد از یک شی از کلاس encryptor میسازیم:حالا ما میتونیم رمزنگاری دیتا مون رو انجام بدیم:خروجی میشه این:ما متن &quot;a secret message&quot; رمزنگاری کردیم حالا برای رمزگشایی از کد زیر استفاده میکنیم:در بالا دیتا رمزنگاری شده رو در ct ریختیم و key &amp; iv که رندم ساخته بودیمو بهش دادیم:مثل رمزنگاری یه شی از کلاس cipher ساختیم و یک شی هم از کلاس decryptor ساختیم و دیتا مون رو رمزگشایی کردیم:
</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Mon, 06 Mar 2023 19:44:36 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری چیست؟ بخش چهارم</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-%D8%A8%D8%AE%D8%B4-%DA%86%D9%87%D8%A7%D8%B1%D9%85-vjitfeqpzofc</link>
                <description>در این پست میخوایم رمزنگاری aes(Advance Encryption Standard) برسی کنیم. تاریخچه رمزنگاری aes:رمزنگاری Advance Encryption Standard یا به اختصار AES در اوایل قرن 21 به وجود آمد. تا قبل به وجود آمدن AES رمزنگاری Data Encryption Standard در دهه 1970 میلادی به عنوان رمزنگاری استاندارد توسط ایلات متحده آمریکا مورد استفاده  قرار می‌گرفت  این رمزنگاری که به اختصار DES نامیده میشد توسط شرکت IBM ایجاد شده بود برای رمزنگاری اطلاعات مشتریان این شکرت استفاده میشد که بعد مدتی توسط  NIST به عنوان رمزنگاری استاندارد ایلات متحده تایید شد. اين رمزنگاری تا دهه 1990 به عنوان یک رمزنگاری غیر قابل شکست تصور میشد اما بخاطر افزایش قدرت پردازش کامپیوتر ها و طول کم کلید این رمزنگاری با استفاده از حمله Brute-Force در چند ساعت کلید این رمزنگاری قابل شکست بود NIST به دنبال یک جایگزین قوی برای DES بود تا در قرن 21 یک رمزنگاری قوی برای حفظ امنیت اطلاعات ایالت متحده در اختیار داشته باشد. NIST با راه‌اندازی یک مسابقه از همه دعوت کرد که با طراحی یک رمزنگاری برای جایگزین کردن des طراحی و ارائه دهند که در اخر الگوریتم Rijndael که توسط دو فرد بلژیکی طراحی شده بود انتخاب شد و به عنوان رمزنگاری استاندارد ایلات متحده به نام AES معرفی شد. طول کلید این رمزنگاری می‌تواند 128,192,256 بیت باشد این رمزنگاری متقارن کخ یک رمزنگاری بلوکی هست تا به امروز هم به عنوان رمزنگاری استاندارد استفاده می‌شود. امنیت رمزنگاری aes:تا به امروز حمله قابل توجه ای برای این رمزنگاری وجود ندارد.این رمزنگاری امروزه استفاده زیادی برای حفظ امنیت اطلاعات دارد در پست های بعد از این رمزنگاری برای رمزنگاری فایل و دیتا در زبان برنامه نویسی python استفاده میکنیم. </description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Fri, 24 Feb 2023 15:00:27 +0330</pubDate>
            </item>
                    <item>
                <title>لیست شغل هایی که توسط هوش مصنوعی درآینده از بین میرود</title>
                <link>https://virgool.io/@codelogy/%D9%84%DB%8C%D8%B3%D8%AA-%D8%B4%D8%BA%D9%84-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%AA%D9%88%D8%B3%D8%B7-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D8%AF%D8%B1%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D8%A7%D8%B2-%D8%A8%DB%8C%D9%86-%D9%85%DB%8C%D8%B1%D9%88%D8%AF-gma8osacs7of</link>
                <description>سلام دوستان امیدوارم حالتون خوب باشه, توی این پست نبستا کوتاه و متفاوت قراره یکسری شغل که در آینده میتونه توسط هوش مصنوعی حذف بشه (هوش مصنوعی جایگزین این شغل ها بشه) رو بهتون معرفی کنم. البته احتمال داره یکم گارد بگیرید نبست به یکسری از شغل ها که عادیه و بهتره با دیدی بازتر نبست به موضوع بهش فکر کنید که توی آیندتون بتونه تاثیر مثبتی رو بزاره.لیستی که آماده کردم توسط شرکت Generative AI تهیه شده و احتمال داره بعدا شغل های دیگه ای بهش اضاف بشه.سازنده محتوا: Al می تواند محتوایی ایجاد کند که به خوبی طراحی شده باشد و از نظر بصری جذاب باشد و تولیدکنندگان محتوای انسانی را بی نیاز کند.تحلیلگر داده: Al می‌تواند حجم زیادی از داده‌ها را سریع‌تر و دقیق‌تر از انسان پردازش و تجزیه و تحلیل کند که منجر به از دست دادن شغل برای تحلیل‌گران داده می‌شود.روزنامه نگار: AI می تواند با بی طرفی مقالات خبری بنویسد. دقت و سرعت، که خبرنگاران انسانی را بیکار می کند.معلم: Al می تواند تجارب یادگیری فردی را برای دانش آموزان فراهم کند و معلمان انسانی را بی نیاز کند.مدیر بازاریابی: Al می تواند روندهای بازار و رفتار مصرف کننده را برای توسعه استراتژی های بازاریابی موثر تجزیه و تحلیل کند و مدیران بازاریابی انسانی را بیکار کند.نماینده خدمات مشتری: Al می تواند سوالات و شکایات مشتریان را با سرعت و کارایی رسیدگی کند. بیکار کردن نمایندگان خدمات مشتری انسانی.تحلیلگر مالی:  Al می تواند داده های مالی را تجزیه و تحلیل کند و تصمیمات آگاهانه بگیرد و تحلیلگران مالی انسانی را بیکار کند.مدیر تولید: Al می تواند روندهای بازار و رفتار مصرف کننده را برای توسعه استراتژی های محصول موثر تجزیه و تحلیل کند و مدیران محصول انسانی را بیکار کند.مدیریت منابع انسانی: AI می تواند وظایف منابع انسانی مانند استخدام، ارزیابی عملکرد و پردازش حقوق و دستمزد را انجام دهد و مدیران منابع انسانی را بیکار کند.مدیر رسانه های اجتماعی: Al می تواند تعاملات رسانه های اجتماعی را مدیریت و تجزیه و تحلیل کند.منشی حقوقی: Al می تواند کارهای اداری و تحقیقاتی قانونی را انجام دهد.پذیرش پزشکی: AI میتواند وظایف اداری را در یک مطب پزشکی انجام دهد و پذیرش پزشکان انسانی را بیکار کند.طراح گرافیک: Al می تواند طرح های جذاب بصری ایجاد کند و طراحان گرافیک انسانی را بی نیاز کند.کپی رایتر: AI می تواند کپی قانع کننده و متقاعد کننده بنویسد.توسعه دهنده وب: Al می‌تواند وب‌سایت‌ها را توسعه و نگهداری کند و انسان های توسعه‌دهندگان وب  را بی‌کار کندکتابدار: AI می تواند منابع کتابخانه ای را مدیریت کند و به تحقیق کمک کند و کتابداران انسانی را بیکار کند.مترجم: Al می تواند متن و گفتار را در زمان واقعی ترجمه کند و مترجم انسانی را بی نیاز کند.طراح داخلی: Al می‌تواند طراحی‌های داخلی جذاب و کاربردی ایجاد کند و طراحان داخلی انسان را بی‌کار کند.حسابدار: Al می تواند سوابق مالی را مدیریت کند و وظایف حسابداری اساسی را انجام دهد و حسابداران انسانی را بیکار کندمسئول پذیرش: AI می تواند وظایف اداری را انجام دهد و به تلفن ها پاسخ دهد، و از کارمندان پذیرش انسانی بی نیاز شود.نوازنده: AI می تواند آهنگ بسازد و اجرا کند.امیدوارم این پست بتونه به آینده شغلیتون کمک خوبی بکنه.موفق باشید.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Fri, 10 Feb 2023 17:55:02 +0330</pubDate>
            </item>
                    <item>
                <title>بد افزار چیست!؟انواع بد افزار</title>
                <link>https://virgool.io/@codelogy/%D8%A8%D8%AF-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%DA%86%DB%8C%D8%B3%D8%AA%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%A8%D8%AF-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-odvjfei4dcvu</link>
                <description>بد افزار ها برنامه های هستند که به قصد تخریب یا سرقت اطلاعات و انجام فعالیت های مخرب طراحی و توسعه میابند و با روش های مختلف توسط هکر ها یا برنامه نویس های حرفه ای پخش و گسترش میابند.عوامل مختلفی برای دسته بندی بدافزار ها مورد برسی قرار میگیرد ما چند نوع مهم انها را برسی میکنیم: کرمتروجان کریپتو جکینگباج افزار بات نتباج افزار(ransomware):باج افزار ها با هدف قرار دادن دیتا های کامپیوتر شما و رمزنگاری فایل های شما رو از دسترس خارج میکن وفایل های شما را رمزنگاری و دردسترسی شمارو به کامپیوتر و فایل ها محدود میکنند و با قفل کردن صفحه نمایش به شما پیامی با دستور عمل ها برای پرداخت مبلغی به عنوان باج برای در  دسترس قرار دادن فایل ها و کامپیوتر شما درخواست میکند.تروجان(Trojan):تروجان بعد از نفوذ به کامپیوتر شما شروع به جمع اوری اطلاعات و سرقت فایل ها و اطلاعات مهم شما میکند.بات نت: بات نت ها بعد از نفوذ به کامپیوتر شما برای حملات ddos و اسپم استفاده میکنند.کرم:کرم ها سیع میکنن با گسترش خود پهنای باند شبکه را درگیر کنند کرم ها خود را در کامپیوتر های داخل شبکه منتقل میکنند و با تکسیر خودشون ترافیک شبکه رو درگیر میکنن.کریپتو جکینگ:کریپتو جکینگ یا اتوماینر بعد از نفوذ به کامپیوتر با درگیر کردن توان cpu و gpu شروع به استخراج رمزارز میکنند.در پست های بعد به صورت کامل بد افزار های نام برده شده را برسی میکنیم. </description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Thu, 09 Feb 2023 18:43:37 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری چیست!؟بخش سوم</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-jclhwtbm4dq2</link>
                <description>در این بخش از &lt;رمزنگاری چیست!؟&gt; به الگورتیم رمزنگاری rsa میپردازیم.الگوریتم رمزنگاری rsa یک رمزنگاری نامتقارن است که در این پست قبلا به رمزنگاری های نامتقارن اشاره داشتیم. رمزنگاری rsa محبوب ترین الگوریتم رمزنگاری نامتقارن است.در ادامه به الگوریتم این رمزنگاری میپردازیم.ساخت کلید private &amp; public:ما برای رمزنگاری دیتا نیاز به کلید عمومی(public key) و برای رمزگشایی دیتا نیاز به کلید خصوصی ( private key) نیاز داریم برای ساخت این کلید ما دو عدد رندم اول(هرچه بزرگ تر امنیت بیشتر) انتخاب میکنیم ما برای درک بهتر از اعداد کوچیک استفاده میکنیم:p = 419q = 479درهم ضربشون میکنیم p*q=n که جواب میشه 200701 و تابع فی شون رو حساب میکنیم :j = (p-1)*(q-1)جواب میشه 200701 حالا یک عدد بین n و j انتخاب میکنیم با دو شرط زیر:عدد انتخابی به n و j اول باشد(مقسوم علیه جز یک نداشته باشند).عدد بین 1و j باشد.پس e = 98447 قرار میدیم.حالا عددی رو باید با این شرط انتخاب کنیم که ضربش در e باقی موندش با j برابر با یک باشه با این شرط عدد d = 154007  قرار میدیم حالا ما چی داریمn = 200701e = 98447d = 154007ما e کیلید مشترک در نظر میگیریم کلید عمومی ما میشه (n,e)کلید خصوصی ما میشه(d,e)ما کلید خصوصی و عمومی رو تولید کردیم و میریم برای رمزنگاری دیتا.رمزنگاری در rsa :برای رمزنگاری دیتا ما اول میام اونو به توان e و بعد باقی موندشو با n حساب میکنیم فکر کنید ما 10 میخوایم رمزنگاری کنیم باید به شکل زیر عمل کنیم:CP =mod( pow(10,98447),200701) = 174101متن رمز شده ما شد 43044 حالا میخوایم رمزگشای کنیم.رمزگشایی در rsa:برای رمزگشایی دیتای رمز شده باید به این شکل عمل کنیم.CP به توان e برسونیم و باقی موندشو با d حساب کنیم:ِdec =  mod(pow(174101,154007),200701) = 10و ما دیتا رمزنگاری شده رو رمزگشایی کردیم.امنیت:واقعیت اینه که همه الگوریتم های رمزنگاری قابل شکستن هستن مهم مدت زمان شکستن و امکانات است در مورد الگورتیم rsa از روش های زیر برای شکستن کلید میتوان استفاده کرد:تجزیه کلید مشترک به عوامل اولمحاسبه ریشه n حمله کانال جانبیلایه گذاریحمله جدول رنگین کمانی درباره همه این روش ها در پست های بعد توضیح میدم.مدت زمان کرک کلید های کوتاه:128Bit = 0.48s192Bit = 3s256Bit = 103s300Bit = 117sضعف ها:اعداد اول ساخته شده توسط توابع RNG برای ساخت اعداد اول کاملا رندم نیستند و محدود هستن.نیاز به پردازش زیادی به نسبت رمزنگاری های متقارن دارند و کند تر عمل میکند.طول دیتا باید کمتر از کلید باشد.در پست های بعد به حملاتی که روی rsa انجام میشود صحبت میکنیم.به امید دیدار.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Tue, 07 Feb 2023 20:29:22 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری چیست!؟بخش دوم</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-kg0mf8ygywrx</link>
                <description>در بخش اول رمزنگاری پچیست یک توضیح کوتاهی درباره رمزنگاری دادیم.تو این قسمت میخوایم به تفاوت رمزنگاری های stream و block به پردازیم.رمزنگاری block:این نوع رمزنگاری با گرفتن n بیت به عنوان ورودی و n بیت کلید خروجی با طول مشخص میدهند.aes,des,des3 در دسته این رمزنگاری قرار دارند.رمزنگاری های stream:این دسته از رمزنگاری ها با الهام از رمزنگاری One time pad ایجاد شدن.به دلیل اینکه در otp طول کلید باید به اندازه ورودی باشد به همین دلیل این رمزنگاری امروزه استفاده ای ندارد رمزنگاری های stream با داشت کلید s یک کلید k با طولی بیشتر از s و اندازه ورودی p تولید میکنند روش تولید کلید در الگورتیم های متفاوت با یک دیگر متفاوت است نمونه های از این نوع رمزنگاری میشه به salsa20 اشاره کرد.تفاوت ها:رمزنگاری های block:رمزنگاری یک بلاک از متن ساده و رمزگشای یک بلاک از متن رمز شدهاز یک کلید چند بار استفاده میکنندالگوریتم پیچیده تری دارند از تکنیک های انتقال استفاده میکنندسرعت کمتری نصبت به stream دراندرمزنگاری های stream:سرعت بیشتری دارندالگوریتم ساده تری دارند از تکنیک های جایگزینی استفاده می کنداز یک کلید یک بار استفاده میکنندممنون که با ما همراه بودین در بخش بعدی در مورد رمزنگاری  rsa صحبت میکنیم.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Fri, 03 Feb 2023 16:53:53 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری چیست!؟بخش یک</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-xctf6s1n3wk2</link>
                <description>رمزنگاری یعنی هنر حافظت از اطلاعات.رمزنگاری به روش ها و الگوریتم های ریاضی گفته میشود که با گرفتن یک ورودی و کلید یک خروجی متفاوت با ورودی میدهد که به ان متن رمز شده گفته میشود.رمزگشایی یعنی برعکس عمل قبلی یعنی دیتای رمزشده با استفاده از همان کلید به دیتای اولیه برگرد.در ادامه به کلمات کلیدی رمزنگاری میپردازیم:رمزنگاری(Encrypt):رمزنگاری یا Encrypt به عملی گفته میشود که در آن یک ورودی(plaintext) و کلید دریافت و یک دیتا مبهم و متفاوت با دیتا اول ایجاد میشود که به آن متن رمزشده(Cipher)گفته میشود.رمزگشایی(decrypt):رمزگشایی یا decrypt به عملی گفته میشود که متن رمزشده(Cipher)با یک کلید به متن اصلی(plaintext) تبدیل میشود.تفاوت encode,hash با رمزنگاری:همان طور که گفتیم در رمزنگاری ما یک متن رو با یک کلید به متن رمزشده تبدیل میکنیم و با عمل رمزگشایی انرا به همان کلید به متن اولیه بر میگردانیم.هش (hash):هش ها الگوریتم های ریاضی هستن که با گرفتن یک دیتا خروجی با طول مشخص ایجاد میکند که ان را نمیتوان به دیتای اول تبدیل کرد. ما دیتای codelogy به هش md5 تبدیل میکنیم و خروجی ما به این شکل میشود:1e70d1e142410aec196b8198c0c13db6این دیتا غیر قابل برگشت از و با دادن ورودی های مختلف ما خروجی های مختلفی هم خواهیم داشت.انکد (encode):انکد ها روش های هستن که دیتای رو به یک دیتای متنی تبدیل میکند.هدف اصلی Encode کردن اینه که داده رو به فرمی تبدیل کنیم که توسط اکثر سیستم ها قابل خوندن بشه.رمزنگاری دارای چند دسته است که شامل رمزنگاری های متقارن و رمزنگاری های نامتقارن تقسیم میشود. رمزنگاری متقارن:رمزنگاری های که عمل رمزگشایی و رمزنگاری رو با یک کلید  انجام میدن را رمزنگاری متقارن می‌گویند. رمزنگاری متقارن خودش به چند بخش دیگه تبدیل میشه مثل stream, block و..... رمزنگاری های salsa20, chacha, aes, des, des3 مثااب از رمزنگاری متقارن هستند. رمزنگاری نامتقارن:این رمزنگاری ها برای رمزنگاری از یک کلید و برای رمزگشایی از یک کلید دیگر استفاده میکنند که به کلید که برای رمزنگاری استفاده میشه رو public و  کلید که برای رمزگشایی استفاده میشه رو privet مینامند. تو این مقاله به زبان ساده رمزنگاری رو توضیح دادیم و تو مقاله های بعدی بیشتر به این موضوع می‌پردازیم. تو این مقاله به زبان ساده رمزنگاری رو توضیح دادیم و تو مقاله های بعدی بیشتر به این موضوع می‌پردازیم. </description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Wed, 01 Feb 2023 00:21:40 +0330</pubDate>
            </item>
                    <item>
                <title>مقایسه سرعت سه زبان برنامه نویسی go , python , cpp</title>
                <link>https://virgool.io/@codelogy/%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%B3%D8%B1%D8%B9%D8%AA-%D8%B3%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-go-python-cpp-s4ial0vhlgrz</link>
                <description>در این مقاله به برسی سرعت سه زبان برنامه  نویسیه go ,python .cpp میپردازیم.زبان برنامه نویسی GO , CPP جزو دسته زبان های کامپایلری هستن حالا زبان های کامپایلری چیست؟زبان های کامپایلری به زبان های گفته میشود که اول به زبان ماشین ترجمه میشود و سپس در دیتای ترجمه شده اجرا میشود. به دلیل اینکه این زبان ها یک بار به زبان ماشین ترجمه میشوند سرعت بالایی دارند.زبان های مفسری مثل python , php جزو دسته زبان های مفسری هستن حالا زبان مفسری چیست؟زبان های مفسری زبان های هستن که خط به خط به زبان ماشین ترجمه میشن به همین دلیل سرعت کمتری به نسبت زبان های کامپایلری دارند.تست سرعتیک حلقه ایجاد کردیم و 1,000,000,000 بار تکرارش کردیم.تست یک pythonنتیجه: 220.4076066017151 ثانیهتست دو Golangنتیجه: 822.047 میلی ثانیهتست سه cppنتیجه: 2.81016 ثانیهجمع بندیبا همین تست دیدم که سرعت زبان go بخاطر مدریت بهتر حافظه و بهینه بودن با اختلاف زیادی با زبان python و cpp سریع تر عمل کرد.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Sun, 29 Jan 2023 19:47:09 +0330</pubDate>
            </item>
                    <item>
                <title>اوسینت چیست؟ - osint</title>
                <link>https://virgool.io/@codelogy/%D8%A7%D9%88%D8%B3%DB%8C%D9%86%D8%AA-%DA%86%DB%8C%D8%B3%D8%AA-osint-pppu8tf8h649</link>
                <description> اوسینت یا Open source intelligence  (OSINT) عمل جمع آوری و تجزیه و تحلیل داده های در دسترس عموم برای اهداف اطلاعاتی است.داده های منبع باز (open source)چیست؟داده منبع باز (open source) هر گونه اطلاعاتی است که به آسانی در دسترس عموم است یا می تواند بر اساس درخواست در دسترس قرار گیرد. منابع OSINT می تواند شامل موارد زیر باشد:مقالات روزنامه ها و مجلات و همچنین گزارش های رسانه ایمقالات دانشگاهی و تحقیقات منتشر شدهکتاب ها و سایر منابع مرجعفعالیت رسانه های اجتماعیداده های سرشماریپرونده های دادگاهسوابق دستگیریداده های معاملات عمومینظرسنجی های عمومیاطلاعات افشا شدهنشانگرهای حمله سایبری به اشتراک گذاشته شده عمومی مانند آدرس های IP، دامنه یا هش فایلاطلاعات گواهی یا ثبت دامنهداده های آسیب پذیری برنامه یا سیستمدر حالی که بیشتر داده های منبع باز از طریق اینترنت باز قابل دسترسی هستند و ممکن است با کمک موتور جستجویی مانند گوگل ایندکس شوند، همچنین می توان از طریق انجمن های بسته تر که توسط موتورهای جستجو ایندکس نشده اند به آنها دسترسی داشت مانند دیپ وب.همچنین توجه به این نکته مهم است که اغلب حجم عظیمی از داده های ثانویه وجود دارد که می توان از هر منبع باز اطلاعات استفاده کرد. به عنوان مثال، حساب های رسانه های اجتماعی را می توان برای اطلاعات شخصی مانند نام کاربر، تاریخ تولد، اعضای خانواده و محل زندگی استخراج کرد. با این حال، فراداده (metadata) فایل از پست‌های خاص نیز می‌تواند اطلاعات اضافی مانند محل ارسال پست (عکس, فیلم و...)، دستگاه مورد استفاده برای ایجاد فایل و سازنده فایل را نشان دهد.چگونه از داده های منبع باز استفاده می شود؟در زمینه OSINT، به استخراج و تجزیه و تحلیل داده های عمومی برای به دست آوردن بینش اشاره دارد، که سپس برای بهبود تصمیم گیری و اطلاع رسانی فعالیت استفاده می شود. به طور کلی، OSINT تکنیکی بود که توسط امنیت ملی و جوامع مجری قانون استفاده می شد. با این حال، در سال های اخیر نیز به یک قابلیت اساسی در امنیت سایبری تبدیل شده است.اوسینت و امنیت سایبریدر حوزه امنیت سایبری، محققان و تحلیلگران اطلاعاتی از داده‌های منبع باز برای درک بهتر چشم‌انداز تهدید استفاده می‌کنند و به دفاع از سازمان‌ها و افراد در برابر خطرات شناخته شده در محیط فناوری اطلاعات کمک می‌کنند.موارد استفاده OSINT در امنیت سایبری در امنیت سایبری، دو مورد استفاده رایج برای OSINT وجود دارد: اندازه گیری خطر برای سازمان خود شناخت حملات، تاکتیک ها و اهدافشما به عنوان اوسینت کار چه کاری را انجام میدهید؟اوسینت‌کار مانند یک کارآگاه به دنبال کشف پاسخ یک سوال با منابع عمومی که در دسترس خود دارد جستجو می‌کند. در نتیجه هر کسی که توانایی حل مسائل را داشته باشد، می‌تواند یک کارآگاه باشد. تنها کافیست به دنبال یادگیری ابزارهای جستجو بگردد و نسبت به یافتن پاسخ اقدام کند.مراحل اوسینت:شناسایی منابعجمع آوری دادهپردازش و یکپارچه سازی داده هاتحلیل داده هانتایجاوسینت شامل مراحل مختلفی است. در ابتدا منبع مشخص می گردد و داده ها جمع آوری می گردد، بعد از یافتن اطلاعات،اطلاعات تحلیل میشوند. موقع تحلیل، از هر داده‌ای می‌توانیم استفاده کنیم. اگر شخصی مهارت دستیابی به اطلاعات را بداند و در بکار بردن این تکنیک‌ها مهارت پیدا کند، می‌تواند به راحتی و در زمان کمی با صرف هزینه‌ی مناسب در مقابل با سایر روش های خود به این اطلاعات دسترسی پیدا کند. برخی اطلاعات در ظاهر برای صاحبش مهم نیستند اما ممکن است برای دیگر افراد با ارزش باشند.اگه از این مطلب خوشتون اومد لایک یادتون نره درضمن توی کانال تلگراممون هر ازگاهی یسری ابزار برای اوسینت معرفی میکنیم و راجب به تکنیک های اوسینت مطلب میزاریم.آيدی کانال: CodeLogy</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Sat, 28 Jan 2023 20:59:32 +0330</pubDate>
            </item>
                    <item>
                <title>رمزنگاری OTP چیست!؟-One Time Pad</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-otp-%DA%86%DB%8C%D8%B3%D8%AA-one-time-pad-dvotvkofvf6c</link>
                <description>رمزنگاری یعنی هنر حفاظت از اطلاعات. رمزنگاری یکی از قدیمی ترین روش ها برای حفاظت اطلاعات مهم و محرمانه در دنیا بود در جنگ ها المان نازی برای حفاظت از اطلاعات جنگی و انتقال ان به صورت مخفی از ماشینی به اسم انیگما استفاده میکردند.ژولیوس سزار از رمزنگاری سزار برای رمزنگاری داده ها استفاده میکرد.رمزنگاری سزارو و انیگما مثالی از رمزنگاری های بودند که در گذشته برای حفاظت اطلاعات در برابر افراد دیگر استفاده می شد این رمزنگاری ها در زندگی امروزه استفاده ای ندارند و به راحتی قابل شکستن هستن رمزنگاری های مدرن مثل aes , des3 جزو رمزنگاری های هستن که امروزه برای حفاظت از اطلاعات استفاده میشوند و الگوریتم پیچیدی تری دارند و صد البته امنیت بالاتر.گیت XORگیت xor یک عملگر بیتی هست که در رمزنگاری استفاده زیادی دارد و به این شکل عمل میکند:0^0=00^1=11^0=11^1=0برای اطلاعات بیشتر میتونید به اینجا مراجعه کنید.رمزنگاری OTP(One-Time-Pad)رمزنگاری one time pad یا یکبار مصرف رمزنگاری با امنیت 100% است و بر پایه گیت xor است.در این رمزنگاری یک کلید با طول داده ای که قصد رمزنگاری کردنش داریم باید داشته باشیم و کلید را با ورودی xor کنیم و کلید باید یک بار مصرف باشد چرا چون با داشتن دو دیتای رمزنگاری شده با یک کلید شکستن ان مثل حل کردن یک جدول است.امروزه از این رمزنگاری استفاده خاصی ندارد چرا که داده های امروزی حجم بیشتری دارند و نیاز به کلید های بزرگ دارند و انتقال ان سخت است.ولی رمزنگاری های stream مثل chacha ,salsa رمزنگاری های هستند که بر پایه این رمزنگاری طراحی شده اند.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Tue, 24 Jan 2023 22:58:10 +0330</pubDate>
            </item>
                    <item>
                <title>حمله MitD چیست؟ نحوه دفاع در برابر آن</title>
                <link>https://virgool.io/@codelogy/%D8%AD%D9%85%D9%84%D9%87-mitd-%DA%86%DB%8C%D8%B3%D8%AA-%D9%86%D8%AD%D9%88%D9%87-%D8%AF%D9%81%D8%A7%D8%B9-%D8%AF%D8%B1-%D8%A8%D8%B1%D8%A7%D8%A8%D8%B1-%D8%A2%D9%86-pigmuxg1otna</link>
                <description>حمله Man in the Disk و نحوه دفاع در برابر آن.اگر از یک دستگاه اندرویدی استفاده می کنید، پس باید از حمله Man-in-the-Disk (MitD) و خطرات ناشی از آن آگاه باشید. به طور خلاصه، به شما این امکان را می‌دهد که کنترل برنامه های قانونی (مثلاً محصولات Google، Yandex یا مرورگر شیائومی) را در دست بگیرید و از آنها برای تزریق برنامه های مخرب استفاده کنید.اما بیایید عمیق تر کاوش کنیم و دریابیم که حمله MitD چیست، چگونه کار می کند و چگونه در برابر آن دفاع کنیم!حمله MitD چیست؟Man-in-the-Disk نوعی حمله سایبری به دستگاه های اندرویدی دارای سیستم عامل اندروید است که در آن یک برنامه مخرب نصب شده توسط کاربر بر روی تلفن هوشمند یا تبلت شروع به آلوده کردن برنامه ها یا فایل های موجود در حافظه خارجی می کند. به محض اینکه قربانی برنامه مخرب را راه اندازی می کند و به آن اجازه دسترسی به حافظه خارجی را می دهد، کد مخرب راه اندازی می شود و به آن اجازه می دهد داده ها را در آن بخواند و بنویسد. این به مهاجم اجازه می‌دهد تا فایل‌ها را اصلاح یا حذف کند، کدهای مخرب را به برنامه‌های کاربردی قانونی تزریق کند یا برنامه‌ها را بدون اطلاع کاربر نصب کند.آشنایی با اصول اولیه: Sandboxing در اندروید.سندباکس ها ستون فقرات امنیت اندروید هستند. ایده آن جدا کردن هر برنامه نصب شده و فایل های آن از سایر برنامه های نصب شده است. این کار به این صورت است، شما یک برنامه را روی دستگاه خود نصب می کنید، پس از آن فایل های آن در یک &quot;sandbox&quot; جداگانه قرار می گیرند که سایر برنامه ها به آن دسترسی ندارند.ایده این است که حتی اگر یک برنامه مخرب به دستگاه اندرویدی شما وارد شود، نمی‌تواند داده‌هایی را که برنامه‌های قانونی ذخیره می‌کنند ( ورود به برنامه بانکی و رمز عبور یا مکالمات پیام‌رسان) تغییر داده و به سرقت ببرد. به این ترتیب، حتی اگر دستگاه شما بدافزار داشته باشد، داده های مهم شما ایمن می مانند.اما هکرها در حالت آماده باش هستند و دائماً در تلاش برای &quot; فرار از جعبه شن (sandbox)&quot; هستند که گاهی اوقات موفق می شوند.حمله Man-in-the-Disk چگونه کار می کند؟اندروید علاوه بر قسمت‌هایی در سندباکس  که برنامه‌ها و فایل‌های آن‌ها در آن‌ها ذخیره می‌شوند، یک فضای ذخیره‌سازی مشترک به نام External Storage دارد. برای دسترسی به آن، برنامه باید از شما اجازه بگیرد. و اگر آن را ارائه کنید، برنامه قابلیت خواندن و نوشتن داده ها را در حافظه خارجی دریافت می کند. اما هیچ چیز مشکوکی در این مورد وجود ندارد. اکنون تقریباً هر برنامه ای چنین مجوزی را درخواست می کند. علاوه بر این، بسیاری از برنامه ها از حافظه خارجی برای تبادل فایل ها با یکدیگر، برای انتقال فایل ها بین گوشی هوشمند و رایانه یا ذخیره موقت داده های دانلود شده از اینترنت استفاده می کنند.به عنوان مثال، هنگامی که یک برنامه را به روز می‌کنید، افزونه های آن ابتدا در حافظه خارجی دانلود می شوند و سپس به منطقه ای جدا شده منتقل می شوند که فقط آن برنامه به آن دسترسی دارد. اینجاست که حمله MitD وارد می شود. از روشی که اندروید با حافظه خارجی کار می کند، بهره می برد. برخلاف سندباکس، هر برنامه‌ای که اجازه خواندن/نوشتن در حافظه خارجی را داشته باشد، می‌تواند فایل‌های موجود در آن را تغییر دهد. بنابراین، حتی اگر فایل های برخی از برنامه های خوب فقط به طور موقت در حافظه خارجی ذخیره شوند، یک برنامه مخرب می تواند با تزریق کد مخرب آنها را تغییر دهد.به نظر می رسد که وقتی یک برنامه قانونی را به روز می کنید، ممکن است حتی مشکوک نباشید که به طور تصادفی بدافزار را به دستگاه خود آورده اید. و هنگامی که می خواهید یک برنامه آلوده را اجرا کنید، کد مخرب اجرا می شود و هکر کنترل دستگاه شما را به دست می گیرد.چگونه از خود در برابر حمله MitD محافظت کنیم؟هیچ چیز پیچیده ای در اینجا وجود ندارد:دسترسی خواندن/نوشتن به حافظه خارجی را به هیچ برنامه ای که به آن نیاز ندارد ندهید.همیشه برنامه ها را از منابع قابل اعتماد نصب کنید، سعی کنید از دانلود و نصب برنامه ها از وب سایت های شخص ثالث و فروشگاه های برنامه خودداری کنید.سیستم عامل و برنامه های خود را به طور منظم به روز کنید تا حفاظت کلی دستگاه را بهبود بخشید.برنامه های غیر ضروری را نصب نکنید.برنامه هایی را که استفاده نمی کنید حذف کنید.یک آنتی ویروس قابل اعتماد روی دستگاه خود نصب کنید.برای دیدن آموزش های بیشتر روی این لینک کلیک کنید تا وارد کانال تلگرامی ما شوید.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Mon, 23 Jan 2023 18:43:02 +0330</pubDate>
            </item>
                    <item>
                <title>سوکت در پایتون</title>
                <link>https://virgool.io/@codelogy/%D8%B3%D9%88%DA%A9%D8%AA-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-op5ln1mu9tag</link>
                <description>از زمان اختراع تلفن این وسیله یکی از ابزار های مهم ارتباطی بین انسان ها بود به شکلی بخش مهمی از زندگی انسان ها را تشکیل میداد.با گذشت زمان و پیشرفت علم و پیشرفت تکنولوژی و با روی کار امدن کامپیوتر ها و پدید آمدن اینترنت این ابزار به بخشی مهمی از زندگی انسان ها تبدیل شد.سوکت(socket) در شبکه همانند تلفن عمل میکند و بین یک یا چند کامپیوتر باهم را مقدور میسازد از این رو یادگیری این بحث برای برنامه نویسان از اهمیت بسیاری برخوردار است.در این این مقاله شما را بیشتر با سوکت و استفاده از این موضوع در پایتون اشنا میکنیم.آدرس IPفرض کنید میخوایم از رستوران X برای نهار غذا سفارش دهیم مراحل این کار به شکل زیر هست:انتخاب غذاتماس با رستوران دادن سفارش ما وقتی غذا را سفارش میدهیم برای اینکه پیک غذا را برای ما بیارد نیاز دارد که ادرس خانه مارا داشته باشد ماهم باید شماره تلفن ان رستوران یا ادرس ان رستوران را داشته باشیم. دقیقا IP شبیه ادرس کامپیوتر ما در اینترنت است که هرکس با اون ادرس با ما اطلاعات رد بدل میکنند.پورت در شبکهپورت همانند در خانه در مثال قبل عمل میکند و کار گرفتن ورودی و خروجی را بر عهده دارد.65535 پورت وجود دارد که به دو گروه رزرو شده و مابقی پورت‌ها رزرو نشده هستند از پورت 1 تا 1024 در دسته پورت های رزرو شده قرار دارند.پروتکلپروتکل ها قوانین و قراردادهای هستند که تعیین می‌کنند که برنامه ها و ماشین ها چگونه با هم ارتباط برقرار کنند.در واقع، پروتکل‌های شبکه، ماشین‌ها را قادر می‌سازند تا از طریق یک زبان مشترک با یکدیگر صحبت کرده و تبادل اطلاعات کنند.مثل پروتکل UDP یا TCP.پروتکل TCP مخفف (Transmissin Control Protocol) در جای استفاده میشود که امنیت و انتقال داده‌ها با امنیت بالا، به ترتیب و بی‌عیب و نقص صورت بگیرد در این پروتکل خطاها برسی میگردد و اگر خطایی باشد دیتا دوباره ارسال میگردد.انواع سوکتسکوت ها انواع مختلفی دارند اما دونوع stream و datagram بیشترین استفاده را دارند ما در این مقاله با stream کار داریم که بر پایه tcp طراحی شده است این سکوت قبل از جابه جای داده باید یک اتصال امن و قدرتمند ایجاد شود تا داده ها با دقت بالا جابه جا شوند.کتاب خانه SOCKET در پایتونبرنامه نویسی سوکت در پایتون با کتاب خانه استاندارد socket امکان پذیر است.در برنامه نویسی سوکت به طور معمول از یک سرور و یک کلاینت استفاده میکنیم البته ارتباط غیرکلاینت-سرور نیز امکان پذیر است.کدنویسی سمت سرورقبل از شروع ما باید کتاب خانه socket را به کد خودمون وارد کنیم:در مرحله اول باید شی از کلاس  socket ایجاد کنیم:همان طور که می‌بینید در هنگام تعریف شی به آن دو آرگومان وارد کردیم ارگمان اول نوع ورژن ip را مشخص می کند.AF_INET نشان میدهد ما میخوایم از ipv4 استفاده میکنیم.آرگومان دوم هم نشان مشخص میکند که ما از stream استفاده میکنیم.حال که ما شی سوکت خودمون رو ایجاد کردیم باید کاری کنیم که در دسترس بشه که برای این کار از متد blind استفاده میکنیم:در ورودی اول ip که قرار هست ازش استفاده کنیم را به صورت رشته مشخص میکنیم و در ورودی بعدی پورتی که میخوایم استفاده کنیم را وارد میکنیم.در مرحله بعد باید سوکت را درحالت گوش دادن قرار بدهیم:با متد listen سوکت را در حالت گوش دادن میزاریم listen یک ورودی از ما میگیرد که تعیین میکند چند نفر میتونن به شبکه ما وصل بشن که من 9 در نظر دارم در کد بالا ما یک حلقه تعریف کردیم که داخل اون میام هرکی که میخواد به سرور ما کانکت بشه قبول کنه و یک دیتایی بایت با محتوای  ok برای اون ارسال کنه دقت کنید که دیتای ارسالی باید بایت باشه و در اخر ارتباط میبنده.سمت کلاینت به این شکل میشه:مثل کد سرور ما یک شی از نوع socket تعریف کردیم و به ip 127.0.0.1 که لوکال هاست هست و پورت 5230 کانکت میشیم و منتظر میشیم که از سرور برای ما یک دیتا ارسال بشه با متد recv  ورودی این متد مربوط به اندازه پیامی است که قراره دریافت بشه و اون دیتا رو در متغیر data قرار میدیم دیتا دریافتی به صورت بایت هست و بعدش نمایشش میدیم و در اخر ارتباط میبندیم:خروجی کداگه از این پست خوشت اومد ممنون میشم لایک کنی.</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Sun, 22 Jan 2023 19:06:47 +0330</pubDate>
            </item>
                    <item>
                <title>دستور uniq در لینوکس - uniq command</title>
                <link>https://virgool.io/@codelogy/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-uniq-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-uniq-command-mvlai0f6jbvq</link>
                <description>در لینوکس دستور uniq یک ابزار خط فرمان است که قادر به شناسایی یا فیلتر کردن خطوط تکراری در یک فایل است. به زبان ساده، uniq ابزاری است که به شناسایی و حذف خطوط تکراری مجاور کمک می کند. اما باید این را در نظر داشته باشید, uniq فقط خطوط تکراری مجاور را تشخیص می دهد. این بدان معناست که تقریباً از آن در ارتباط با مرتب سازی استفاده خواهید کرد.برای شروع از دستور زیر استفاده کنیدsort codelogy.txt | uniqگزینه u- در دستور sort به شما امکان حذف موارد تکراری را می دهد.sort -u codelogy.txt با استفاده از گزینه d- می توانید به uniq دستور دهید فقط خطوط تکراری را نمایش دهد.مثلا:sort codelogy.txt | uniq -dاگر می خواهید خطوط غیر تکراری را نمایش دهید، از گزینه u-  در uniq استفاده کنید:sort codelogy.txt | uniq -uبرای شمارش تعداد کلمات تکراری c- استفاده کنید:sort codelogy.txt | uniq -cاین بسیار مفید است اگر بخواهید موارد را بر اساس بیشترین تعداد کلمات تکراری مرتب کنید، یعنی از بیشترین به کم ترین. از ترکیب ویژه زیر استفاده کنید:sort codelogy.txt | uniq -c | sort -nrاگر می‌خواهید از تعداد کمتر به بیشتر مرتب‌سازی کنید، گزینه r- را استفاده کنید.sort codelogy.txt | uniq -c | sort -n</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Sat, 21 Jan 2023 20:03:05 +0330</pubDate>
            </item>
                    <item>
                <title>عملگر بیتی xor در پایتون</title>
                <link>https://virgool.io/@codelogy/%D8%B9%D9%85%D9%84%DA%AF%D8%B1-%D8%A8%DB%8C%D8%AA%DB%8C-xor-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-kcjtysfbjt1t</link>
                <description>عملگر بیتی xor یک گیت منطقی است. همان طور که گفتیم یک عملگر بیتی است و در سطح بیت کار می‌کند  عملکرد ان بدین شکل است1 ^ 1 = 01 ^ 0 = 10 ^ 1 = 10 ^ 0 = 0عملگر XOR مخفف Exclusive or میباشد و در خروجی تفاوت بیتی بین دو مقدار را نشان میدهد و با داشتن این تفاوت و یکی از طرفین میتوان طرف دیگر را بدست آورد.از این عملگر در رمزنگاری symmetric به همین اسم یعنی xor استفاده شده است. از  این تکنیک برای کم کردن Redundancy اطلاعات بکاپ در برخی از نصخه های تکنولوژی RAID استفاده شده است.حال ما میخوایم با کمک این گیت رمزنگاری xor را در پایتون پیاده سازی کنیم و نگاهی به روش کار کردن با این عملگر در پایتون بندازیم2^3=1علامت ^ در پایتون برای عملگر xor است در تصویر بالا ما 2 را با 3 xor  کردیم 2 در مبنای دو برابر است با 10 و 3 برابر است با 11  طبق جدول xor زمانی که این دورا باهم xor کنیم جواب ما 01 است در مبنای ده میشه 1.برای برگرداند خروجی به حالت اول باید بدین شکل عمل کنیم:بدین شکل خروجی ما به حالت اول برگشت.اما برای رمزنگاری متن ما باید به شکل دیگری عمل کنیم. به سورس زیر دقت کنیدتابع رمزنگاری متندر تابعی که بالا نوشتیم یک متغیر به اسم plaint(متنی که میخوایم رمزنگاری کنیم)و یک key به عنوان کلید میگیریم یک متغیر به نام j که ان را برابر با 0 گزاشتیم و یک متغیر به نام _len که ان را برابر با طول کلیدمان گذاشتیم در خط بعد یک لیست خالی تعین کردیم یک حلقه for با range طول ورودیمون درست کردیم یک try و excapt برای کنترل خطا ها نوشتیم و داخل ان به لیست خالی مان xor شده ورودی و کلید مونو اضافه کردیم داخل این خط ما یک از index های وردیمان را انتخاب میکنیم و با یکی از index های کلید مان xor کردیم که با index کلید مان با متغیر j تعین میشود و چون احتمال دارد طول کلیدمان از طول متن ورودی کوچیک تر باشد ما گفتیم اگر j بزرگ تر از مساوی طول کلید بود j را برابر  با 0 قرار بده در غیر این صورت یدونه به اون اضافه کنو داخله except گفتیم از حلقه خارج شو و در حلقه بعدی از لیستی که تعین کردیم به صورت بایت به متغیر دیگه اضافه میکنیم و در اخر به base64 تبدیل میکنیم. کار سورس به این شکل میشه برای رمزگشایی هم از سورس زیر استفاده میکنیم:این تابعه هم مثل تابع رمزگشایی هست و متن رمزشده رو از base64 خارج میکنیم و با کلید xor  میکنیم . رمزگشای متن رمز شدهسورس کلی رمزگشای رمزنگاری میشه به این شکل:به همین سادگی با گیت xor متن رو رمزنگاری و رمزگشایی کردیم.درمورد امنیت این رمزنگاری هم باید بگم که رمزنگاری ایمنی هست و استفاده های دیگه ای داره که به این مقاله ربطی نداره.شبکه های اجتماعی ما:لگرام: کدلوژیاینستاگرام: CodeLogyگیت هاب: GitHub CodeLogyیوتیوب: YouYube CodeLogy</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Mon, 12 Sep 2022 20:47:15 +0430</pubDate>
            </item>
                    <item>
                <title>رمزنگاری end-to-end</title>
                <link>https://virgool.io/@codelogy/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-end-to-end-wdaxnd3g2agk</link>
                <description>در این مقاله از کُدِلوژی قصد داریم به رمزنگاری end-to-end بپردازدیماول از همه به این بپردازدیم که رمزنگاری چی هست؟رمزنگاری هنر محافظت از اطلاعات استرمزنگاری دارای دونوع اصلی متقارن و نامتقارن است.  در رمزنگاری متقارن رمزنگاری است که با یک کلید رمزنگاری و با همان کلید عمل رمزگشایی انجام میشود.رمزنگاری نامتقارن رمزنگاری است که با یک کلید رمزنگاری(public) و با کلید دیگر رمزگشایی انجام میشود(private)سیستم رمزنگاری end-to-end سیستمی است که در ان اطلاعات رد و بدل شده را فقد فرستنده و گیرنده میتوانند رمزگشایی کنند، بدین گونه که کلید های پابلیک خود را در اختیار هم دیگر قرار میدهند و با کیلید های پابلیک یکدیگر اطلاعات را رمزگشایی میکنند، این سیستم به گونه ای عمل میکند که هیچ کس جز فرستند و گیرنده توانای خواندن اطلاعات در حال رد و بدل شده را ندارندر پست های بعدی به ساخت یک چت روم با پایتون و سیستم رمزنگاری end-to-end میپردازیم</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Sun, 21 Aug 2022 23:31:46 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش دستور کپی cp در لینوکس و برسی آپشن های دستور cp</title>
                <link>https://virgool.io/@codelogy/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%DA%A9%D9%BE%DB%8C-cp-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D9%88-%D8%A8%D8%B1%D8%B3%DB%8C-%D8%A2%D9%BE%D8%B4%D9%86-%D9%87%D8%A7%DB%8C-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-cp-u8ooc8phbybi</link>
                <description>? هر چیزی که باید راجب به کپی کردن فایل توی لینوکس بدونید رو توی این آموزش کوتاه قراره بهتون بگیمبه عنوان یک سیستم ادمین، معمولا نیاز دارید که فایل ها و دایرکتوری ها رو از یک مکان در سیستم به مکان دیگه کپی کنید.دستور cp این امکان رو واستون فراهم میکنهدر ابتدایی ترین شکل دستور cp دو پارامتر رو میگیره: شِی مبدا و شِی مقصد (عکس زیر)اگه پارامترهای مبدا و مقصد هر دو نام فایل باشند نه دایرکتوری، دستور cp میاد فایل مبدا رو در فایل مقصد (کنار خودش) کپی میکنهاگه فایل مقصد از قبل وجود داشته باشه، دستور cp ممکنه به شما اطلاع نده و این میتونه خطرناک باشه چون ممکنه محتویات یک فایل مهم رو به اشتباه جایگزین کنید.پس، از گزینه i- استفاده کنید تا شِل رو مجبور کنید که بپرسه آیا میخوای یک فایل رو بازنویسی کنی یا نه، اگه در جواب بگید y، کپی فایل انجام میشه و محتویات جدید جایگزین محتویات فایل قبل میشه و اگر n رو وارد کنید کپی رو متوقف میکنهمثل هر سیستم عامل دیگه یک فایل رو میشه توی دایرکتوری که از قبل وجود داره کپی کرددر اینجا یک مثال سریع برای نشون دادنش زده شدهیک نکته سریع ?در انتهای نام دایرکتوری، یک اسلش (/) اضافه کنیداسلش نشون میده که به جای یک نام فایل، یک دایرکتوری است.این برای واضح بودن مسیر مفیده و هنگام کپی کردن فایل تکی ضروریه. اگر اسلش وجود نداشته باشد و دایرکتوری فرعی (logs) /home/linuxopsys/demo/logsوجود نداشته باشد، یک فایل در دایرکتوری فعلی ایجاد میشه و هیچ پیام خطایی نمایش داده نمیشهدر نتیجه، همیشه باید از اسلش برای نشان دادن نام دایرکتوری ها استفاده کردو اینم بهتون بگم که در لینوکس، میتونید یک فایل را همزمان با کپی کردنش اسمشو تغییر بدیندستور cp رو میشه با یک نقطه (.) هم استفاده کرد. یادتون باشه که تک نقطه نشان دهنده دایرکتوری فعلی شماستنقطه میتونه هنگام کپی کردن یک فایل در مسیر طولانی بهتون کمک کنهگزینه R- در دستور cp بسیار قدرتمندهاین گزینه به شما این امکان رو میده تا به صورت بازگشتی محتویات یک دایرکتوری را فقط در یک دستور کپی کنیدیادتون باشه که به غیر از مواردی که گفتم، آپشن های دستور cp دیگه ای هنوز هست.برای دیدن همه آپشن های دستور cp از man cp یا cp --help میتونید استفاده کنیدامیدوارم از این آموزش کوتاه لذت برده باشید و اگه سوال دیگه ای دارید میتونید توی گروه تلگرام سوال خودتونو مطرح کنید??برای ورود به گروه تلگرامی اینجا کلیک کنید</description>
                <category>CodeLogy - کدلوژی</category>
                <author>CodeLogy - کدلوژی</author>
                <pubDate>Wed, 17 Aug 2022 00:01:47 +0430</pubDate>
            </item>
            </channel>
</rss>