عجب آدمایی هستید شما به خدا
من کی گفتم فقط AES داره؟! AES رو بعنوان مثال زدم.
توی این راهنما هم گذاشتی خب الگوریتم ها رو برای مقاصد مختلف فقط لیست کرده که تعداد و تنوع قابل توجهی دارن، البته اسم و مشخصاتی که داده خوبه ولی بازم یه آدم غیرمتخصص چه سر درمیاره از اینا آخه! از کجا میفهمه چه مدی استفاده کنه چه الگوریتمی و چرا؟ چه طول کلیدی و چرا؟ پسورد اگر استفاده میکنه چه پسوردی و چقدر امنیت میده با کدوم الگوریتم...
بعدم گفتم که کدهایی که بنده دادم در قسمت PHP بوده و در PHP هم چیزی که حداقل در نصب ها و کانفیگ پیشفرض در دسترس هست محدودتره و مثلا فرض مد EAX رو نداره مد CCM این حرفا رو نداره، بخاطر همین شما باید یک MAC جداگانه پیدا کنی و سرهم کنی با AES تا authenticated encryption داشته باشی. حالا خود این MAC چندین نوع داره، یک نوعش HMAC است، و HMAC هم باز خودش میتونه مثلا HMAC-SHA1 باشه، میتونه HMAC-SHA256 باشه و غیره. بعد کلید HMAC رو از کجا میاری؟ باز این خودش جزییات داره و خودت باید بدونی و شرایطشو رعایت کنی کدش رو بنویسی. همهء اینا بدون اطلاعات گسترده و مطمئن کسی نمیتونه گوه گیجه میشه خب
توی راهنما به شما روش این انتخاب ها و ترکیب ها رو یاد نمیده. اگر راهنمایی باشه تمام این جزییات رو به شما یاد بده، خودش یک خودآموزی در زمینهء قابل توجهی از مباحث رمزنگاری میشه! راهنما فقط یکسری اسمها و اشاره های کلی و تخصصی رو درج کرده. انتخاب مناسب الگوریتم و مد و کلید، تولید کلید، ترکیب الگوریتم های مختلف مثل AES و HMAC و یکسری جزییات دیگر رو معمولا نداره و به شما یاد نمیده، اگر باشه خب طرف باید بخونه و کسی که تخصص در این زمینه نداره معمولا همه رو به این راحتی متوجه نمیشه و گیج میشه و احتمال اشتباهاتش زیاده. حتی واسه خود من هم این کار زیاد راحت نبود، بخاطر همین اومدم یک کدی بنویسم که یک بار این موارد رو تقریبا کامل درش جمع و رعایت بکنم و بعدا از همون استفاده کنم.
ضمنا شما در PHP یا بعضی کتابخانه های دیگر حتی الگوریتم ها و مدهای ضعیف یا حتی شکسته شده رو هم پیدا میکنی. مثلا در mcrypt الگوریتم DES یا مد ECB هم هست و بعضیا که اطلاعات ندارن اشتباها استفاده میکنن.
کلا جزییات و جای گیج شدن و اشتباه زیاد هست. منم کدی نوشتم بخاطر این بوده و این جزییات رو در PHP یا پایتون با همون ابزارها و کتابخانه های استاندارد و دم دست جمع آوری و ترکیب کردم با پارامترها و نکات لازم. ادعای دیگر هم نکردم که!