به نام خدا

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

توضیح مختصری در مورد الگوریتم های رمزنگاری:

احتمالا تا الان اسم های RSA و AES به گوشتون خورده باشه

برای توضیح و تفاوتشون باید اول مفهوم رمزنگاری متقارن و نامتقارن رو بدونید. رمز نگاری متقارن به شیوه ای از رمزنگاری میگن که کلید رمزی کردن یه متن با کلید رمزگشایی یه متن رمز شده یکسان باشه یعنی اگر شما اون کلید رو داشته باشید میتونید هر متن رمزشده ای که با اون کلید رمز شده رو رمزگشایی کنید و یا متن هایی که دوست دارید رو رمزنگاری کنید اما رمزنگاری نامتقارن چیه؟ یه نوع رمزنگاری هست که دوتا کلید داره یه کلید عمومی و یه کلید خصوصی، کلید عمومی برای رمزکردن و کلید خصوصی برای رمزگشایی به کار میره (چه فایده ای داره؟) شما میتونید کلید عمومی رو بدید به هرکسی که دلتون خواست تا متن ها رو رمز کنه و خوبیش اینه که فقط خود شما که کلید خصوصی رو دارید میتونید اون رمز ها رو رمزگشایی کنید مثلا میتونید اینجوری فرض کنید که تلگرام کلید عمومی رو میده به برنامه نویس ها و برنامه نویس ها پیام ها رو با اون کد میکنند اما هیچکدومشون نمیتونن پیام های کد شده رو رمزگشایی کنن و نیاز به کلید خصوصی داره

RSA یه الگوریتم رمزنگاری نامتقارن هست (یعنی شامل دو کلید عمومی و خصوصی)

AES یه الگوریتم رمزنگاری متقارن هست (دارای یک کلید و IV)

توی سویفت برای استفاده از AES از لایبراری قوی CryptoSwift استفاده میکنیم

و برای استفاده از الگوی رمزنگاری RSA از لایبراری SwiftyRSA بهره میبریم.

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