Avatar ·

تشفير وفك تشفير سلسلة نصية في C#: طريقة بسيطة وآمنة

مرحباً بالجميع! أنا مطور C# مبتدئ، وواجهت مشكلة في تشفير السلاسل النصية. أحتاج إلى حفظ كلمة مرور المستخدم في قاعدة البيانات بشكل مشفر، ثم عند تسجيل الدخول فك تشفيرها ومقارنتها بكلمة المرور المدخلة. جربت استخدام خوارزميات بسيطة، لكن الكود أصبح ضخماً وغير آمن كما أفهم. هذا ما كتبته: ```csharp public static string Encrypt(string text) { byte[] data = Encoding.UTF8.GetBytes(text); for (int i = 0; i < data.Length; i++) { data[i] = (byte)(data[i] ^ 0xFF); // XOR بسيط } return Convert.ToBase64String(data); } ``` لكني أدرك أن هذا "مستوى أطفال" من ناحية الأمان. سمعت عن AES، لكني لا أعرف كيفية استخدامه بشكل صحيح مع الملح (salt) ومتجه التهيئة (IV) والمفتاح. أحتاج مثالاً عملياً: 1. يشفر السلسلة النصية بشكل آمن (يفضل AES-256). 2. يسمح بفك تشفيرها مرة أخرى. 3. يستخدم IV عشوائي لكل عملية تشفير. 4. يعمل على .NET 6+ و Mono (لنظام Linux).