| AmirHossein | – Telegram
| AmirHossein |
591 subscribers
44 photos
8 videos
2 files
73 links
نوشته‌های یک برنامه‌نویس ناشی

🫂 @StartUnity
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
توی این مدتی که نبودم یک پکیج برای ورژن 2 LaraGram رو توسعه دادم
این پکیج رو با اسم Laraquest توی گیت هاب منتشر کردم ترکیبی از اسم LaraGram و Request

کاربردش هم دریافت آپدیت ها و کار با API تلگرام هست

← تک تک متد هارو با ورودی هاشون ساپورت میکنه
← تک تگ آپدیت های تلگرام رو دریافت میکنه، همونطور که توی ویدئو میبینید هر آپدیتی رو که بنویسید زیر مجموعه هاش براتون لیست میشه
← 4 روش ارسال رکوئست داره (کامل نیستن)

بسیار هم سبک هست و استفاده ازش ساده س
حتی برای پروژه های خودتون هم میتونید استفاده کنید
البته هنوز ورژن آلفا هست و قابلیت هاش کامل نیست

لینکش رو زیر قرار میدم اگر دوست داشتید یک نگاهی بندازید و استار هم بدید❤️

🔰 https://github.com/laraXgram/Laraquest
🔰 @AmirhDeveloper
🔥6👍31
اونوقت بگید LaraGram بده!

امکان ساخت Conversation ها به همین سادگی.

- ولیدیت کردن پاسخ هر سوال
- نام گذاری برای هر سوال جهت پردازش راحت تر.
- ارسال سوال به صورت media
- ساخت Conversation با کیبورد
- مشخص کردن کامند جهت skip سوال
-‏ action جهت اجرا آنی پس از دریافت پاسخ
- مشخص کردن تعداد Attempt
- مشخص کردن Timeout بدون پاسخ ماندن
- مشحص کردن کامند لغو Conversation
- مشخص کردن عملیات پس از Conversation

همه این قابلیت ها تنها با متد های پیش ساخته با یک خط کد

البته که این قابلیت ها در ورژن 2 منتشر میشن😉

🔰 https://github.com/laraXgram/LaraGram
🔰 @AmirhDeveloper
🔥3
دلار در عرض چند ساعت از ۶۵ هزار تومن به ۷۲ هزار تومن رسید

ظاهرا خرید و فروش رو متوقف کردن تا بیشتر از این بالا نره

ایران زیبا نیست؟
اینایی که لفت میدن نمیدونن چه بحث خوبی رو قراره از دست بدن🚶‍♂️

همین یکی دو روزه شروع میکنم
12👍1🗿1
#crypto

رمزگذاری، هش و کدگذاری سه مفهوم کلیدی در امنیت سایبری و حفاظت از داده‌ها هستند که با وجود شباهت‌هایی که به نظر می‌رسند، کاربردها و اهداف متفاوتی دارند. در اینجا به توضیح هر کدام و دادن مثال‌هایی برای هر مورد می‌پردازیم:

———

1- رمزگذاری (Encrypting):
رمزگذاری فرایندی است که در آن اطلاعات یا داده‌های قابل فهم (plaintext) توسط یک الگوریتم رمزگذاری و کلید رمزگذاری به داده‌هایی غیرقابل فهم (ciphertext) تبدیل می‌شوند. هدف از رمزگذاری این است که تنها افرادی که دارای کلید مناسب هستند بتوانند داده‌ها را رمزگشایی کرده و مجدداً به شکل قابل فهم درآورند.

مثال:
فرض کنید که می‌خواهید پیام "سلام" را با استفاده از رمزگذاری AES رمزگذاری کنید. با استفاده از کلید خصوصی، پیام "سلام" به سری از کاراکترهای تصادفی مانند "5G7f9X1" تبدیل می‌شود که بدون داشتن کلید، خوانده نمی‌شود.

———

2- هش (Hashing):
هش کردن فرآیندی است که یک داده با حجم دلخواه را به یک خروجی ثابت و کوتاه‌تر تبدیل می‌کند که به آن هش گفته می‌شود. هش‌ها نباید قابل برگشت به حالت اصلی باشند و در صورتی که دو داده متفاوت حتی اندکی با هم تفاوت داشته باشند، هش‌های کاملاً متفاوتی تولید می‌کنند.

مثال:
اگر متن "سلام" را با استفاده از الگوریتم SHA-256 هش کنید، خروجی می‌تواند شکلی مانند "3a7bd3e2360a0d3dfffb33ef4f6a6513a3da9660" داشته باشد. اگر حتی یک کاراکتر در متن تغییر کند، مثلاً "سلام!"، هش کاملاً متفاوت خواهد بود.

———

3- کدگذاری (Encoding):
کدگذاری فرایندی است که داده‌ها را از یک فرمت به فرمت دیگر تبدیل می‌کند، معمولاً برای انتقال یا ذخیره‌سازی راحت‌تر. کدگذاری قابل برگشت است و هدف آن مخفی کردن اطلاعات نیست بلکه سازگاری فرمت‌ها است.

مثال:
اگر تصویری را به فرمت Base64 کدگذاری کنید، می‌توانید آن را به صورت رشته‌ای از کاراکترهای ASCII در متن HTML یا ایمیل قرار دهید. این کدگذاری برای سهولت استفاده از داده‌ها در زمینه‌های مختلف است و می‌توان آن را به سادگی به حالت اصلی بازگرداند.

———

این سه مفهوم هر کدام کاربردهای خاص خود را دارند و برای حفاظت و مدیریت اطلاعات در محیط‌های مختلف فناوری اطلاعات به کار می‌روند.

@AmirhDeveloper
🔥63
#crypto
رمزنگاری DES / 3DES:

توضیح چند مفهوم پیش نیاز:

1- ساختار فایستل (Feistel Structure):
ساختار فایستل روشی است برای ساختن یک الگوریتم رمزنگاری بلوکی. این ساختار از یک تابع خاص به نام تابع فایستل استفاده می‌کند که به ترکیب داده‌های ورودی با کلیدهای رمزنگاری کمک می‌کند. در این ساختار، داده‌ها به دو نیم تقسیم می‌شوند. در هر مرحله یا دور از رمزنگاری:

1- نیمه سمت راست به تابع فایستل فرستاده می‌شود که با یک کلید خاص ترکیب می‌شود.
2- خروجی تابع فایستل با نیمه سمت چپ داده‌ها از طریق عملیات XOR مخلوط می‌شود.
3- نیمه‌ها سپس برای دور بعدی جابجا می‌شوند.
———
S-Box (Substitution Box):

‏S-Box یک جزء مهم در بسیاری از الگوریتم‌های رمزنگاری است و عملکردی شبیه به جعبه جایگزینی دارد. وظیفه S-Box جایگزینی بخش‌هایی از داده‌ها با داده‌های دیگر بر اساس یک جدول ثابت است. این فرایند به عنوان بخشی از تابع فایستل اتفاق می‌افتد:

وقتی داده‌ها از S-Box عبور می‌کنند، بخش‌هایی از داده‌ها به طور کامل تغییر می‌یابند.
این تغییر باعث می‌شود که حملات رمزنگاری که بر اساس تحلیل الگوهای متداول انجام می‌شوند، دشوارتر شود.
———
Initial Permutation (IP):
‏Initial Permutation (IP) یا جدول جایگزینی اولیه یکی از اولین مراحل فرآیند رمزنگاری است. این مرحله یک تغییر ساده ولی مهم در ترتیب بیت‌های بلوک ورودی داده‌ها ایجاد می‌کند. ترتیب دقیق این جابجایی بر اساس یک جدول ثابت و از پیش تعریف شده انجام می‌شود که به همین نام، جدول جایگزینی اولیه نامیده می‌شود.
———
توضیحات DES/3DES:

DES (Data Encryption Standard):
‏DES
یک الگوریتم رمزنگاری بلوکی است که توسط موسسه ملی استانداردها و فناوری (NIST) در دهه 1970 تصویب شد. این الگوریتم بلوک‌هایی از داده‌ها را به اندازه 64 بیت رمزنگاری می‌کند و از یک کلید 56 بیتی استفاده می‌کند (با 8 بیت برای تأیید صحت که در عمل استفاده نمی‌شوند).

‏DES از یک ساختار فایستل استفاده می‌کند که شامل 16 دور تکرار شده است. هر دور شامل توابع گسترش، جایگزینی و جمع می‌باشد. فرمول اصلی برای ترکیب بلوک‌های داده با کلیدها در DES به صورت زیر است:

1- ابتدا داده‌ها از طریق یک جدول جایگزینی اولیه IP عبور داده می‌شوند.
2- داده‌ها به دو نیمه تقسیم می‌شوند و در طی 16 دور، با کلیدهایی که از کلید اصلی تولید شده‌اند، ترکیب می‌شوند.
3- در هر دور، نیمه راست توسط تابع فایستل تحت تأثیر قرار می‌گیرد که شامل گسترش، جایگزینی با استفاده از جدول S-Box و یک جمع XOR با کلید دور است.
4- نتایج هر دور دوباره مبادله می‌شوند و سپس دور بعدی آغاز می‌شود.
5- پس از 16 دور، دو نیمه مبادله شده و از طریق جدول جایگزینی نهایی IP^-1 عبور داده می‌شوند تا خروجی نهایی تولید شود.

کاربردها:
‏DES
در دهه 1970 و 1980 برای محافظت از اطلاعات حساس دولتی و تجاری استفاده می‌شد، اما به دلیل طول کلید نسبتاً کوتاه و آسیب‌پذیری‌های امنیتی که در آن زمان کشف شدند، به تدریج کنار گذاشته شد.

------

3DES (Triple DES):
‏3DES
یک تکامل از DES است که با هدف افزایش امنیت رمزنگاری DES توسعه یافت. این الگوریتم با استفاده از سه دوره DES با سه کلید مجزا یا دو کلید مجزا (که یکی از آن‌ها دوبار استفاده می‌شود)، داده‌ها را رمزنگاری می‌کند.

فرآیند رمزنگاری در 3DES شامل اعمال سه بار الگوریتم DES است:
1- رمزنگاری با کلید اول
2- رمزگشایی با کلید دوم (این بخش به عملکرد امنیتی کمک می‌کند)
3- رمزنگاری مجدد با کلید سوم

‏3DES در بسیاری از سیستم‌های مالی مانند ATM‌ها و پرداخت‌های نقطه فروش استفاده می‌شود. با این حال، به دلیل کند بودن نسبت به الگوریتم‌های مدرن‌تر و محدودیت‌های امنیتی، استفاده از آن در حال کاهش است و جایگزین‌هایی مانند AES توصیه می‌شوند.

------

تفاوت‌ها:
‏DES تنها از یک کلید 56 بیتی استفاده می‌کند، در حالی که 3DES می‌تواند از کلیدهایی با طول مجموع 168 بیت (در حالت سه کلیدی) استفاده کند.

‏3DES به دلیل استفاده از چندین دور DES، مقاومت بیشتری در برابر حملات دارد.

‏DES سریع‌تر است زیرا تنها یک دور رمزنگاری انجام می‌دهد، در حالی که 3DES به دلیل انجام سه دور رمزنگاری، کندتر است.(صرف نظر از امنیت بیشتر 3DES)

@AmirhDeveloper
.
1🔥1
#crypto

IDEA (International Data Encryption Algorithm) :

‏IDEA، یک الگوریتم رمزنگاری بلوکی می‌باشد که ابتدا در سال 1991 توسط Xuejia Lai و James Massey از مؤسسه فناوری فدرال سوئیس به منظور جایگزینی برای DES (Data Encryption Standard) معرفی شد. IDEA از یک کلید 128 بیتی استفاده می‌کند و داده‌ها را در بلوک‌های 64 بیتی رمزنگاری می‌کند.

———

عملکرد الگوریتم:
‏IDEA بر اساس چندین مرحله مختلف عمل می‌کند. الگوریتم از 8.5 دور تکراری استفاده می‌کند، که هر کدام شامل چندین مرحله مختلف می‌باشد.

الگوریتم IDEA شامل 8 دور کامل است. در هر دور، چهار زیر بلوک داده (هر کدام 16 بیت) از طریق یک سری ترکیب‌های مشخص از عملیات‌های جمع، ضرب و XOR با کلیدهای مختلف مرتبط می‌شوند. هر دور شامل استفاده از چندین کلید کوچک‌تر است که از کلید اصلی 128 بیتی مشتق می‌شوند.

پس از اتمام 8 دور کامل، یک نیم دور دیگر انجام می‌شود، که به آن "نیم دور نهایی" گفته می‌شود. در این نیم دور، داده‌ها دوباره تحت تأثیر ترکیب‌هایی از جمع و ضرب قرار می‌گیرند، اما به جای تکرار کامل پردازش‌های قبلی، تنها برخی از عملیات‌ها اعمال می‌شوند تا خروجی نهایی رمزنگاری شده را تولید کنند.

———

مراحل:

1- داده‌های ورودی 64 بیتی به چهار بخش 16 بیتی تقسیم می‌شوند.

2- هر بخش با یکی از کلیدهای جزئی ترکیب می‌شود (از طریق ضرب، جمع، یا XOR) برای تولید خروجی.

3- کلیدهای جزئی از کلید اصلی 128 بیتی با استفاده از یک الگوریتم تولید کلید جداگانه استخراج می‌شوند.

4- فرآیند فوق برای هر دور تکرار می‌شود، با استفاده از کلیدهای جدید در هر دور.

5- پس از اتمام دورها، یک تبدیل نهایی انجام شده و خروجی رمزنگاری شده تولید می‌گردد.

———

کاربردها:
به کار رفته در برنامه‌های مختلف مانند PGP (Pretty Good Privacy) برای رمزنگاری ایمیل‌ها و داده‌ها.

استفاده در برخی از سیستم‌های پرداخت برای تأمین امنیت تراکنش‌ها.

استفاده برای رمزنگاری داده‌های ارسالی از طریق شبکه‌های خصوصی مجازی (VPN).

———

‏IDEA همچنین به دلیل ساختار متقارن خود که به همان اندازه در رمزگشایی مؤثر است، مورد توجه قرار گرفته است. با این حال، با پیشرفت‌هایی در حوزه رمزنگاری، الگوریتم‌های جدیدتر مانند AES (Advanced Encryption Standard) جایگاه بیشتری در کاربردهای صنعتی پیدا کرده‌اند.

@AmirhDeveloper
.
#crypto

Blowfish:

الگوریتم Blowfish یک الگوریتم رمزنگاری متقارن کلیدی است که توسط بروس اشنایر در سال 1993 طراحی شد. این الگوریتم برای جایگزینی DES و IDEA طراحی شده و معمولاً برای رمزگذاری اطلاعات در محیط‌هایی که نیاز به رمزنگاری قوی و کارآمد دارند، مورد استفاده قرار می‌گیرد.

ویژگی‌های کلیدی:
طول کلید می‌تواند بین 32 بیت تا 448 بیت باشد.
از بلوک‌های داده 64 بیتی استفاده می‌کند.
رمزنگاری سریع در پلتفرم‌هایی با منابع محدود.
مقاومت بالا در برابر حملات رمزنگاری، به جز برخی نقاط ضعف در کلیدهای بسیار طولانی.

فرآیند رمزنگاری:
از یک شبکه فایستل استفاده می‌کند که شامل 16 دور تکرار می‌شود. داده‌ها به دو نیمه تقسیم شده و سپس با استفاده از کلیدهای تولید شده از یک ماتریس S-box و کلید اصلی پردازش می‌شوند.

1- داده‌های ورودی که به صورت بلوک‌های 64 بیتی هستند، به دو نیمه تقسیم می‌شوند، نیمه چپ (L) و نیمه راست (R).
2- در هر دور تابع F به نیمه L اعمال میشود و نتیجه با نیمه R، ‏XOR میشود.
سپس L و R جابه‌جا می‌شوند. در دور بعدی، عملیات روی R جدید (که L قبلی است) انجام می‌شود.

‏a,b,c,d هر کدام از نیمه چپ (L) برداشته می‌شوند.
‏از مقادیر بخش‌های a,b,c,d به عنوان اندیس‌ها برای دسترسی به جداول S-box استفاده می‌شود و مقادیر جدول به صورت زیر ترکیب می‌شوند:

F(L) = ((S1[a] + S2[b] mod 2^32) XOR S3[c]) + S4[d] mod 2^32

این تابع برای محاسبه نتیجه‌ای استفاده می‌شود که با R ترکیب خواهد شد.

4- پس از 16 دور، L و R نهایی جابه‌جا می‌شوند.
دو نیمه با هم ترکیب شده و خروجی نهایی رمزنگاری شده را تشکیل می‌دهند.

کاربردها:
1- از آن برای رمزگذاری فایل‌های فردی یا کل دیسک استفاده می‌شود.
2- به عنوان یک انتخاب برای ایجاد ارتباطات محافظت‌شده در نرم‌افزارهای مختلف.
3- امن‌سازی تراکنش‌ها در سیستم‌های پرداخت الکترونیکی.

به دلیل سادگی و کارایی بالا در دستگاه‌هایی با قدرت پردازشی کمتر، همچنان محبوب است، اما در برخی کاربردهای جدیدتر توسط الگوریتم‌هایی مانند AES که امنیت بالاتری دارند جایگزین شده است.

@AmirhDeveloper
.
🔥1
#crypto

Twofish:
‏Twofish یک الگوریتم رمزنگاری بلوکی است که در سال 1998 توسط بروس شنایر، جان کلسی، داگ وایتینگ، دیوید واگنر، کریس هال، و نیل فرگوسن طراحی شده است. این الگوریتم به عنوان یکی از نامزدهای مرحله نهایی برای AES (Advanced Encryption Standard) بود ولی در نهایت Rijndael برای این نقش انتخاب شد. Twofish یک رمز سمتریک است، یعنی برای رمزنگاری و رمزگشایی از همان کلید استفاده می‌کند.

ویژگی‌ها:
1
- اندازه بلوک 128 بیت
2- طول کلید 128، 192، یا 256 بیت
3- این الگوریتم از 16 چرخه تکراری استفاده می‌کند.
4- بر اساس شبکه فایستل، که تقسیم داده‌ها به دو نیمه را و مبادله آن‌ها در هر چرخه دربرمی‌گیرد.

مکانیزم الگوریتم:
‏Twofish از ترکیبی از تبدیل‌های مختلف برای افزایش امنیت و کارآمدی استفاده می‌کند.

‏Twofish از یک مکانیزم پیچیده برای تولید راندکی‌ها (کلیدهایی که در هر چرخه استفاده می‌شوند) استفاده می‌کند. این فرآیند شامل تبدیل کلید ورودی به آرایه‌ای از کلیدهای 32 بیتی است که با استفاده از S-boxها و PHT (Pseudo-Hadamard Transform) اصلاح می‌شوند.

در هر راند، داده‌ها از یک سری S-box، تبدیلات خطی و نهایتاً یک جمع با کلید راند می‌گذرند. این فرآیندها به نوبه خود به افزایش امنیت در برابر حملات مختلف کمک می‌کنند.

‏Twofish از S-boxهایی استفاده می‌کند که به صورت پویا بر اساس کلید رمزنگاری ایجاد می‌شوند. این روش باعث می‌شود که تجزیه و تحلیل رمز بدون دانستن کلید اصلی دشوارتر باشد.

فرآیند رمزنگاری:
رمزنگاری در Twofish در 16 راند انجام می‌پذیرد و هر راند شامل چندین مرحله است:

1- داده‌های ورودی 128 بیتی به دو بخش 64 بیتی تقسیم می‌شوند.

2- در هر راند، یکی از نیمه‌ها به عنوان ورودی به تابع F ارسال می‌شود که شامل استفاده از S-boxها و PHT است.
خروجی تابع F با نیمه دیگر XOR می‌شود و سپس نیمه‌ها جابجا می‌شوند.

F(R) = (S0[R0] XOR S1[R1] XOR S2[R2] XOR S3[R3]) XOR K

⁧‏R0, R1, R2, R3 هرکدام 8 بیت از ورودی R هستند.
‏S0, S1, S2, S3 همان S-Box هایی هستند که بر اساس کلید رمزنگاری تعریف شده‌اند.
‏K کلید راند که در این تابع به عنوان یک عنصر اضافه کننده به کار می‌رود.

3- پس از گذراندن تمام راندها، دو نیمه نهایی با یک کلید دیگر XOR می‌شوند تا خروجی نهایی رمزنگاری شده تولید شود.

کاربردها:
1
- به دلیل سرعت بالا و امنیت قوی در مقایسه با سایر الگوریتم‌ها، Twofish در زمینه‌هایی که امنیت داده‌های حساس اهمیت دارد مورد استفاده قرار می‌گیرد.

2- استفاده از Twofish برای محافظت از اطلاعات حساس مربوط به تراکنش‌های مالی و بانکی.

3- بسیاری از نرم‌افزارهای رمزنگاری که نیاز به رمزنگاری فایل‌ها و داده‌ها دارند، از Twofish به عنوان یک گزینه برای تامین امنیت اطلاعات استفاده می‌کنند.

‏Twofish همچنان به عنوان یک گزینه معتبر و قابل اطمینان در میان الگوریتم‌های رمزنگاری مدرن باقی مانده است، به ویژه در کاربردهایی که حفظ تعادل بین امنیت و عملکرد اهمیت دارد.

@AmirhDeveloper
.
🔥2
#crypto

ECC:
‌‌‏ECC‏ (Elliptic Curve Cryptography) یک روش رمزنگاری عمومی است که برای ایمن‌سازی اطلاعات استفاده می‌شود. این روش بر اساس خواص ریاضی انحناهای بیضوی در میدانهای جبری ایجاد شده است و از آن برای ایجاد کلیدهای رمزنگاری، تبادل اطلاعات امن و امضاء دیجیتال استفاده می‌شود.

الگوریتم ECC:
1
- در این مرحله، یک منحنی بیضوی روی یک میدان مشخص انتخاب می‌شود. این منحنی به صورت رابطه‌های ریاضیی تعریف می‌شود که از یک مجموعه از اعداد صحیح و یک عملیات جمع خاص استفاده می‌کند.

2- یک نقطه ابتدایی (یا نقطه ژنراتور) روی منحنی بیضوی انتخاب می‌شود. این نقطه معمولاً به صورت دلخواه انتخاب می‌شود.

3- از نقطه ابتدایی شروع کرده و آن را تکراراً با خودش جمع می‌کنیم. به این ترتیب، نقاط دیگری را بدست می‌آوریم که همگی روی منحنی بیضوی قرار دارند.

4- هر نقطه بر منحنی بیضوی می‌تواند به عنوان یک کلید خصوصی استفاده شود، در حالی که مضرب آن نقطه به عنوان کلید عمومی مورد استفاده قرار می‌گیرد.

فرآیند:
فرض کنید می‌خواهید یک پیام را با استفاده از ECC رمزنگاری کنید. ابتدا یک جفت کلید عمومی و خصوصی تولید می‌کنید. سپس می‌توانید پیام خود را با استفاده از کلید عمومی رمزگذاری کنید و فقط کسی که دارای کلید خصوصی متناظر است می‌تواند آن را باز کند.

1- تولید کلیدها:
ابتدا یک منحنی بیضوی مناسب انتخاب می‌شود. این منحنی بیضوی بر روی یک میدان اعداد مختصاتی (مثلاً میدان اعداد حقیقی یا یک میدان مخصوص مودولاری) تعریف می‌شود.
یک نقطه اولیه (معمولاً G نامیده می‌شود) بر روی منحنی بیضوی انتخاب می‌شود.
شخص اول یک عدد تصادفی به عنوان کلید خصوصی خود انتخاب می‌کند. این عدد معمولاً با نام d نشان داده می‌شود.
کلید عمومی متناظر با کلید خصوصی توسط شخص اول محاسبه می‌شود.
برای محاسبهٔ کلید عمومی، شخص اول از کلید خصوصی خود و نقطه اولیه بر روی منحنی استفاده می‌کند.
این عملیات به صورت ضربی نقطه‌ای انجام می‌شود: G * d = A
نتیجهٔ این ضرب، یک نقطه جدید بر روی منحنی بیضوی است که به عنوان کلید عمومی نشان داده می‌شود.

2- رمزنگاری پیام:
شخص اول متنی را میخواهد برای شخص دوم ارسال کند.

هر کاراکتر متن را به یک نقطه بر روی منحنی بیضوی نگاشت می‌کنیم. این عملیات به عنوان "تبدیل پیام به نقاط بر روی منحنی بیضوی" شناخته می‌شود.
با استفاده از کلید عمومی، شخص اول محاسبه می‌کند که هر نقطه بر روی منحنی بیضوی را چه مقداری به دیگر نقاط می‌رساند. این عملیات به عنوان "ضرب نقطه در کلید عمومی" شناخته می‌شود.
در نتیجه، متن مبدل به یک سری نقاط دیگر بر روی منحنی بیضوی می‌شود، که از دیدگاه ریاضی به شکل G * k = R تولید می‌شود، که R نقطه رمزنگاری شده، G نقطه اصلی (نقطه اولیه) بر روی منحنی بیضوی و k عدد تصادفی است که از کلید عمومی مشتق شده است.

3- رمزگشایی:
شخص دوم پیام رمزنگاری شده را از شخص اول دریافت می‌کند، که شامل نقاطی بر روی منحنی بیضوی است.
شخص دوم از کلید خصوصی خود (که به عنوان d نشان داده می‌شود) استفاده می‌کند تا هر نقطه رمزنگاری شده را به دیگر نقاط منحنی بیضوی منتقل کند. این عملیات به عنوان "ضرب نقطه در کلید خصوصی" شناخته می‌شود.
به عبارت ریاضی، برای هر نقطه رمزنگاری شده R، شخص دوم R را با کلید خصوصی d ضرب می‌کند، که به صورت R * d= M تعریف می‌شود. در اینجا M نقطه اصلی منحنی بیضوی است که متن رمزنگاری شده به آن تبدیل شده است.
نقاط بدست آمده M به ترتیب تبدیل به کاراکترهای متنی می‌شوند. این عملیات به عنوان "تبدیل نقاط بر روی منحنی بیضوی به متن" شناخته می‌شود.
در نهایت، شخص دوم متن اصلی را بازیابی می‌کند که توسط شخص اول رمزنگاری شده بود.


کاربردها:
به
عنوان یک روش رمزنگاری برای ارتباطات امن در اینترنت، تلفن‌های همراه، و دیگر سیستم‌های ارتباطی استفاده می‌شود.

برای ایجاد امضاءهای دیجیتال برای تأیید هویت در امضاء‌های دیجیتال و احراز هویت استفاده می‌شود.

به عنوان یکی از روش‌های رمزنگاری اصلی برای امنیت تراکنش‌های پرداخت الکترونیکی مورد استفاده قرار می‌گیرد.

@AmirhDeveloper
.
🔥2
#crypto

‏PGP، مخفف "Pretty Good Privacy"، یک برنامه نرم‌افزاری است که برای رمزنگاری و دیجیتالی سازی ارتباطات و داده‌ها به منظور حفظ حریم خصوصی و امنیت آن‌ها استفاده می‌شود. این برنامه توسط فیل زیمرمن در سال 1991 توسعه یافت و به سرعت به یکی از رایج‌ترین روش‌ها برای امن سازی ارتباطات الکترونیکی تبدیل شد. در ادامه به جزئیات بیشتری در مورد PGP می‌پردازیم:

‏PGP از ترکیبی از رمزنگاری متقارن و نامتقارن استفاده می‌کند. در ابتدا، داده‌ها با استفاده از یک کلید متقارن رمزگذاری می‌شوند که به سرعت عملیات رمزنگاری را افزایش می‌دهد. سپس، کلید متقارن با استفاده از کلید عمومی گیرنده رمزگذاری می‌شود. فقط گیرنده‌ای که دارای کلید خصوصی متناظر است می‌تواند کلید متقارن را رمزگشایی کند و به داده‌های اصلی دسترسی پیدا کند.

‏PGP همچنین امکان امضای دیجیتالی پیام‌ها را فراهم می‌آورد. این فرآیند با استفاده از کلید خصوصی فرستنده برای امضا کردن پیام انجام می‌شود. گیرنده می‌تواند با استفاده از کلید عمومی فرستنده، امضا را تأیید کند. این امر به تأیید هویت فرستنده و تضمین تمامیت داده‌ها کمک می‌کند.

یکی از چالش‌های اصلی در استفاده از PGP، مدیریت کلیدها است. کاربران باید کلیدهای عمومی دیگران را به دست آورند و اطمینان حاصل کنند که این کلیدها معتبر هستند. PGP از یک سیستم اعتماد مبتنی بر "حلقه اعتماد" استفاده می‌کند، جایی که کاربران می‌توانند کلیدهای یکدیگر را تأیید و امضا کنند تا به سایر کاربران در شناسایی و اعتماد به کلیدهای عمومی کمک کنند.

‏PGP اصلی منبع باز است، اما نسخه‌های تجاری و استانداردهای مبتنی بر PGP نیز وجود دارند. OpenPGP یک استاندارد آزاد است که توسط IETF نگهداری می‌شود و توسط بسیاری از برنامه‌های نرم‌افزاری پیاده‌سازی شده است. GnuPG یکی از مشهورترین پیاده‌سازی‌های رایگان و باز این استاندارد است.

استفاده از PGP می‌تواند نیازمند دانش فنی نسبتاً بالایی باشد و مدیریت کلید می‌تواند پیچیده باشد. همچنین، در برخی از کشورها ممکن است استفاده از رمزنگاری با قوانین محلی در تضاد باشد. این فناوری باید با درک کامل از ملاحظات قانونی و فنی به کار گرفته شود.

‏PGP ابزار قدرتمندی برای حفظ امنیت و حریم خصوصی در ارتباطات دیجیتالی است، اما استفاده از آن نیازمند دقت و آگاهی از چگونگی کار با کلیدهای رمزنگاری و اصول امنیتی است.

استفاده‌های PGP شامل ارسال ایمیل‌های رمزنگاری شده، امضای دیجیتال، و حفاظت از فایل‌ها و اطلاعات حساس است. این ابزار معمولاً توسط افراد و سازمان‌هایی که به حفظ حریم خصوصی و امنیت اطلاعات خود علاقه دارند، استفاده می‌شود.

@AmirhDeveloper
.
🔥1
#crypto

‏RC Algorithms مخفف Rivest Cipher Algorithms است که یک سری الگوریتم‌های رمزنگاری ساخته شده توسط رون ریوست (Ron Rivest) می‌باشند. این الگوریتم‌ها معمولاً برای ایجاد امنیت در ارتباطات دیجیتال و ذخیره داده‌ها استفاده می‌شوند. برخی از معروف‌ترین الگوریتم‌های این مجموعه عبارتند از RC4، RC5 و RC6.

RC1:
‏RC1 اولین تلاش رون ریوست برای ایجاد یک الگوریتم رمزنگاری بود، اما جزئیات آن هرگز به طور عمومی منتشر نشد.

RC2:
‏RC2 یک الگوریتم رمزنگاری بلوکی با طول بلوک 64 بیت است که در سال 1987 طراحی شد. این الگوریتم از کلیدهای متغیری استفاده می‌کند که می‌تواند از 40 بیت تا 128 بیت باشند. RC2 برای جایگزینی DES طراحی شد و در مواردی که طول کلید محدودیت دارد مورد استفاده قرار می‌گیرد.

RC3:
‏RC3 در یک مسابقه رمزنگاری شرکت داده شد اما شکست خورد و به سرعت توسط RC5 جایگزین شد.

RC4:
‏RC4، که در سال 1987 توسعه یافت، یک الگوریتم رمزنگاری استریم است و به خاطر سادگی و سرعت بالای آن در اجرا مشهور است. این الگوریتم توسط یک آرایه موقت S استفاده می‌کند و یک جریان رمزی تولید می‌کند که به صورت بایت به بایت با داده‌های ورودی XOR می‌شود.

RC5:
‏RC5 یک الگوریتم رمزنگاری بلوکی با طول بلوک، طول کلید و تعداد دورهای قابل تنظیم است. این الگوریتم از جمع مدولار، XOR و بیت‌شیفت‌های متغیر استفاده می‌کند.

RC6:
‏RC6، که یک تکامل از RC5 است، در مسابقه AES شرکت کرد. این الگوریتم از چهار واحد داده در یک بلوک استفاده می‌کند و عملیات پیچیده‌تری مانند جمع مدولار و بیت‌شیفت‌ها را انجام می‌دهد.

الگوریتم‌های RC به دلیل سادگی و انعطاف‌پذیری در طراحی و پیاده‌سازی، در طیف وسیعی از برنامه‌های کاربردی مورد استفاده قرار گرفتند. با این حال، با پیشرفت در حوزه تحلیل رمزنگاری، برخی از الگوریتم‌های قدیمی‌تر مانند RC4 به دلیل نقاط ضعف امنیتی کمتر استفاده می‌شوند.

توضیح فرآیند (بر پایه RC4):
‏RC4 با یک کلید مخفی شروع می‌شود و یک آرایه از بایت‌ها (معمولاً 256 بایت) را برای تولید جریان رمز استفاده می‌کند. در اینجا چگونگی کارکرد آن با یک مثال ساده توضیح داده شده است:
1- ابتدا یک آرایه S از اعداد 0 تا 255 ایجاد می‌شود.
For i from 0 to 255:
S[i] = i


2- آرایه S با استفاده از کلید رمزنگاری شده پراکنده می‌شود. این به اطمینان از اینکه جریان خروجی نامشخص باقی بماند، کمک می‌کند.
j = 0
For i from 0 to 255:
j = (j + S[i] + Key[i % KeyLength]) % 256
Swap S[i] and S[j]


3- با ترکیب اعداد در آرایه S، یک جریان رمز تولید می‌شود که برای رمزگذاری داده‌ها استفاده می‌شود.
i = j = 0
For each byte k of plaintext:
i = (i + 1) % 256
j = (j + S[i]) % 256
Swap S[i] and S[j]
t = (S[i] + S[j]) % 256
Ciphertext byte = k XOR S[t]


در این فرآیند، ما با ایجاد یک آرایه S که حاوی تمام اعداد از 0 تا 255 است شروع می‌کنیم. سپس، این آرایه را با استفاده از یک کلید مخفی به صورت پیچیده‌ای مخلوط می‌کنیم تا اطمینان حاصل شود که الگوی تولید شده ناشناخته و تصادفی است. در نهایت، با استفاده از این آرایه برای تولید جریانی از اعداد که به طور XOR با متن ساده اعمال می‌شود، رمزنگاری را انجام می‌دهیم. این روش باعث می‌شود که داده‌های رمزنگاری شده بدون دانستن کلید قابل خواندن نباشند.

کاربردها:
1- استفاده در پروتکل‌هایی مانند SSL و TLS برای ایجاد ارتباطات امن در اینترنت.
2- محافظت از داده‌های حساس در برابر دسترسی‌های نامجاز.
3- به دلیل سادگی و کارایی بالا، در دستگاه‌هایی با منابع محدود مفید است.

الگوریتم‌های RC به دلیل سادگی و سرعت بالا در اجرا، همچنان در بسیاری از زمینه‌ها مورد استفاده قرار می‌گیرند، اگرچه برخی نقاط ضعف امنیتی در آن‌ها شناسایی شده و برخی از استفاده‌های آن‌ها در محیط‌های خاص توصیه نمی‌شود.

@AmirhDevelpoer
.
🔥1
درود

متسافانه قرار بر این شد که دیگه اینجا فعالیتی نداشته باشم
در آینده اگر خواستم پستی بنویسم روی لینکدین قرار میدم
این بحث هم نصف میمونه و اگر قرار شد ادامه ش بدم روی همون لینکدین پست میکنم

کانال هم همینطوری میمونه تا اگر کسی نیاز داشت مطالب قدیمیش رو بخونه

درنهایت مرسی از کسایی که تو این مدت کنارم بودن و حمایت کردن🤗
.
Please open Telegram to view this post
VIEW IN TELEGRAM
13💔5🗿2👍1
😧
Please open Telegram to view this post
VIEW IN TELEGRAM
Are available in the fragment.com

🌀 @CSharpGap 20 📱

🌀 @JavaScriptGap 20 📱

🌀 @MachineLearningGap 20 📱

🌀@WordpressGap 20 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
حدود یک سال از شروع توسعه LaraGram میگذره و امروز ورژن 2 اون منتشر شد.

توی این ورژن LaraGram کاملا از نو بازسازی شده با الهام گیری از فریم‌ورک Laravel

در ابتدا Container اضافه شده که مسئول مدیریت تمام وابستگی های پروژه هست.

از طرفی ServiceProvider ها رابط بین ما و کانتینر هستن برای فراهم کردن وابستگی جدید.

در کنارش Facade های لاراول اضافه شده که متد هارو به سادگی در دسترس قرار میده.

برای ارسال درخواست و دریافت آپدیت از پکیج Laraquest استفاده شده که قابلیت سینتکس هایلایتینگ خیلی حرفه ای داره تا استفاده رو ساده کنه و از طرفی بسیار بهینه و سبک هست.

چند لیسنر جدید اضافه شده مثل onReferral

سیستم کیبورد بیلدر بازسازی شده و بسیار انعطاف پذیر تر از قبل.

در کنار مدل ها و مایگریشن ها سیدر و فکتوری هم اضافه شده.

کامند های کنسول انعطاف پذیر تر شدند، طوری که شما هم میتونید با زدن یک کامند، کامند های جدید بسازید.

فایل .env حذف شده و کانفیگ ها داخل آرایه ها گرفته میشن تا سرعت بالاتری رو داشته باشیم.

پوشه بزرگ Core از فولدر root حذف شده و به یک پکیج جداگانه انتقال داده شده.

دیتابیس جیسونی موقتا حذف شده تا پس از بازنویسی اضافه بشه.

همه تغییرات این ها نیستن و خیلی از قابلیت ها مونده که طی آپدیت ها اضافه میشن مثل کانورسیشن ها.

در نهایت اگر مایل بودید به پروژه استار بدید🤗
LaraGram - Laraquest - Core

Channel
@AmirhDeveloper
.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3👍2
Forwarded from Start Unity (ali reza)
دوستان عزیز 🌟

من مدت زیادی هست که با عشق و علاقه در کانال Start Unity فعالیت می‌کنم و آموزش‌های متنی و کدهای یونیتی رو با شما به اشتراک می‌گذارم. از حمایت‌های شما بسیار ممنونم.

اما برای اینکه کانال بتونه رشد بیشتری داشته باشه و بتونم مطالب بیشتری براتون آماده کنم، به حمایت‌های شما نیاز دارم. خواهشمندم که پست‌های کانال رو با دوستان و همکارانتون به اشتراک بذارید تا اعضای کانال افزایش پیدا کنه.

همچنین می‌خواهم از دوست عزیزم که کانال رو بوست کرد، تشکر ویژه کنم. حمایت تو برای من بسیار ارزشمنده ❤️

به عنوان تشکر از حمایت‌های شما، در آینده قصد دارم آموزش‌های ویدیویی یونیتی هم بسازم و در کانال قرار بدم.

از همراهی و حمایت‌های شما بسیار سپاسگزارم. با هم می‌تونیم این کانال رو به یکی از بهترین منابع آموزشی یونیتی تبدیل کنیم 🚀
10
درود به همه

قصد نوشتن یک دوره آموزشی جامع و کامل برای فریم‌ورک قدرتمند لاراول رو دارم. این دوره به صورت گام به گام و از مباحث پایه شروع شده و به تدریج به مباحث پیشرفته‌تر می‌پردازه، و هر چیزی از لاراول رو قراره پوشش بده.

مناسب برای همه، حتی کسانی که هیچ آشنایی قبلی با لاراول ندارند. تنها پیش‌نیاز این دوره، آشنایی با زبان PHP و معماری MVC است.

سرفصل‌های این دوره:

فصل 0: مقدمات
1- معرفی لاراول
2- نصب و راه‌اندازی لاراول
3- ساختار پوشه‌ها و فایل‌ها در لاراول
4- تنظیمات اولیه و محیط‌های کاری

فصل 1: Routing
1- معرفی متد های روتینگ
2- میدلورها

فصل 2: Controllers
1- ایجاد و استفاده از کنترلرها
2- متدهای کنترلر
3- کنترلرهای Resource
4- کنترلرهای API
5- ‏Dependency Injection در کنترلرها

فصل 3: Views
1- موتور قالب‌سازی Blade
2- ساختار و سینتکس Blade
3- شامل کردن ویوها و کامپوننت‌ها
4- مدیریت داده‌ها در ویوها

فصل 4: مدل‌ها و Eloquent ORM
1- معرفی Eloquent
2- تعریف مدل‌ها
3- ارتباطات بین مدل‌ها (Relations)
4- کوئری بیلدر (Query Builder)
5- ‏Accessors و Mutators
6- ‏Scopes

فصل 5: Migrations and Database
1- تعریف و اجرای Migrationها
2- ‏Seeders و Factories
3- کار با دیتابیس‌ها و ارتباطات

فصل 6: فرم‌ها و اعتبارسنجی
1- ساخت و پردازش فرم‌ها
2- اعتبارسنجی درخواست‌ها
3- پیام‌های خطا و مدیریت آن‌ها

فصل 7: Services و Dependency Injection
1- ‏Service Container
2- سرویس‌ها و Providers
3- ‏Facades

فصل 8: امنیت (Security)
1- احراز هویت (Authentication)
2- مجوزها (Authorization)
3- رمزنگاری (Encryption)
4- جلوگیری از CSRF و XSS

فصل 9: تست و Debugging
1- معرفی ابزارهای تست لاراول
2- ‏Unit Testing
3- ‏Integration Testing
4- ‏Debugging و خطایابی

فصل 10: Optimization and Performance
1- کشینگ (Caching)
2- ‏Queues و Background Jobs
3- بهینه‌سازی کوئری‌ها
4- استفاده از Octane

فصل 11: توسعه پیشرفته
1-‏ Package Development
2- توسعه RESTful API
3- استفاده از رویدادها (Events) و Listenerها
4- مدیریت فایل‌ها و Storage

فصل 12: بررسی هسته لاراول
1- ساختار هسته لاراول
2- بررسی و توضیح کلاس‌های کلیدی
3- بررسی چرخه درخواست (Request Lifecycle)

لطفا هرگونه کمبود یا ایراد در سرفصل هارو اعلام کنید تا شروع کنیم.
#laravel
@AmirhDeveloper
.
🔥174👍1
▫️ فصل صفر - مقدمات
🔴🔴🔴
◀️بخش اول - معرفی لاراول:

لاراول
یک فریم‌ورک PHP متن‌باز و قدرتمند است که برای توسعه برنامه‌های وب طراحی شده است.
لاراول از ساختار MVC پیروی می‌کند که به توسعه‌دهندگان امکان می‌دهد کدهای خود را به صورت منظم و خوانا سازماندهی کنند.
این فریم‌ورک همچنین با اصول SOLID و برنامه‌نویسی شی‌گرا (OOP) هماهنگ است، که به افزایش قابلیت نگهداری و توسعه‌پذیری کد کمک می‌کند.
این فریم‌ورک ابزارها و قابلیت‌های بسیاری را برای تسهیل فرآیند توسعه ارائه می‌دهد، از جمله:

‏Routing : سیستم مسیریابی قدرتمند برای مدیریت درخواست‌های وب.

‏Eloquent ORM : سیستم ORM پیشرفته برای تعامل با پایگاه داده به صورت شیء‌گرا.

‏Artisan Console : رابط خط فرمان برای اجرای دستورات و وظایف مختلف.

‏Middleware : مکانیزمی برای فیلتر کردن درخواست‌ها و پاسخ‌ها.

‏Queues : پشتیبانی از صف‌ها برای مدیریت کارهای پس‌زمینه.

لاراول به دلیل سهولت استفاده، مستندات جامع، و جامعه کاربری بزرگ، به یکی از محبوب‌ترین فریم‌ورک‌های PHP تبدیل شده است.

🔴🔴🔴
◀️بخش دوم - نصب و راه‌اندازی لاراول:

برای نصب و راه‌اندازی لاراول، ابتدا باید اطمینان حاصل کنید که سرور شما از نیازمندی‌های لاراول پشتیبانی می‌کند. نیازمندی‌های اصلی لاراول عبارتند از:

- PHP >= 8.2
- BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML PHP Extensions

برای نصب لاراول، می‌توانید از Composer استفاده کنید. Composer یک ابزار مدیریت وابستگی‌ها در PHP است. برای نصب Composer به سایت getcomposer.org مراجعه کرده و دستورالعمل‌های نصب را دنبال کنید.

پس از نصب Composer، می‌توانید لاراول را با استفاده از دو روش زیر نصب کنید:
composer create-project laravel/laravel myproject

یا
composer global require laravel/installer
laravel new myproject


با اجرای این دستور، یک پروژه جدید لاراول در پوشه‌ای به نام myproject ایجاد می‌شود.
پس از اتمام نصب، می‌توانید وارد پوشه پروژه شده و سرور توسعه لاراول را با دستور زیر اجرا کنید:
cd myproject
php artisan serve


سرور توسعه لاراول به صورت پیش‌فرض روی پورت 8000 اجرا می‌شود و می‌توانید با مراجعه به آدرس http://localhost:8000 برنامه خود را مشاهده کنید.
#laravel
@AmirhDeveloper
.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75👍4
▫️ فصل صفر - مقدمات
🔴🔴🔴
◀️بخش سوم - ساختار پوشه‌ها در لاراول :

پروژه لاراول دارای ساختار پوشه‌ای منظم و مشخصی است. در ادامه، به توضیح مختصر هر یک از پوشه‌ها و فایل‌های مهم می‌پردازیم:

📂 ‏app/
شامل کدهای اصلی برنامه است. این پوشه شامل زیرپوشه‌های مدل‌ها (Models)، کنترلرها (Controllers)، میان‌افزارها (Middleware) و غیره می‌باشد.

📂 ‏bootstrap/
شامل فایل‌های بوت‌استرپینگ برنامه (مانند بوت کردن ServiceProviderها و MiddleWareها) و تنظیمات اولیه است.

📂 ‏config/
شامل فایل‌های تنظیمات برنامه است.

📂 ‏database/
شامل فایل‌های مرتبط با پایگاه داده مانند مایگریشن ها (Migrations)، Factory ها و Seeder ها می باشد.

📂 ‏public/
شامل فایل‌های عمومی قابل دسترسی از طریق وب است. فایل‌های CSS، JavaScript، تصاویر و فایل اصلی index.php در این پوشه قرار دارند.

📂 ‏resources/
شامل منابع برنامه مانند ویوها (views)، فایل‌های زبان و فایل‌های استاتیک است.

📂 ‏routes/
شامل فایل‌های مربوط به مسیریابی برنامه است.

📂‏ ‏storage/
شامل فایل‌های ذخیره‌سازی مانند لاگ‌ها، کش‌ها و فایل‌های آپلود شده است.

📂‏ ‏tests/
شامل تست‌های واحد و یکپارچه‌سازی برنامه است.

📂‏ ‏vendor/
شامل کتابخانه‌ها و پکیج‌های نصب شده توسط Composer است.
🔴🔴🔴
◀️بخش چهارم - تنظیمات اولیه :

لاراول امکان تنظیمات مختلف برای محیط‌های کاری مختلف (مثل توسعه، تست، و تولید) را فراهم می‌کند. فایل تنظیمات اصلی .env نام دارد و در ریشه پروژه قرار دارد.
در این فایل، می‌توانید تنظیمات مربوط به پایگاه داده، سرور ایمیل، کش و سایر تنظیمات محیطی را تعیین کنید.

با تغییر مقدار APP_ENV می‌توانید محیط کاری را تغییر دهید. مقادیر معمول برای این متغیر عبارتند از:

‏local (توسعه)،
‏production (تولید)،
‏ staging (آزمایش)،

همچنین، می‌توانید تنظیمات خاصی را برای هر محیط در فایل‌های تنظیمات موجود در پوشه config/ مشخص کنید.

با استفاده از فایل‌های تنظیمات و ساختار پوشه‌ای منظم، لاراول به توسعه‌دهندگان امکان می‌دهد برنامه‌های وب پیچیده و قدرتمندی را به سرعت و با کیفیت بالا توسعه دهند.
#laravel
@AmirhDeveloper
.
Please open Telegram to view this post
VIEW IN TELEGRAM
181🔥1