1-استفاده از الگوریتمهای غیر متقارن(با 2 کلید) و یا متقارن (با 1 کلید) از لحاظ کاربرد شما، هیچ فرقی نمی کنه.
شما میخوای اطلاعات تو بانک داده قابل خوندن نباشه، نمیخوای که کسی بانک داده جدید واسه برنامت درست نکنه.

برای اینکه کلید بازگشایی رمز رو به راحتی نشه پیدا کرد، باید چند تا چیز رو مد نظر داشته باشی.
1-حتما از Obfuscator مطمئنی برای در هم و برهم کردن برنامت استفاده کن.
2-روالهای ضد دیباگ برای برنامه اضافه کن (اگه اضافه نکنی با ابزارهای موجود، در دو سوت! رو اسمبلی(منظورم Net Assembly.ه) مربوط به روالهای رمزگذاری نقطه توقف میذارن و ...)
3-کلید رو بصورت آماده تو برنامه قرار نده. وسط کلی دستورات گمراه کننده بسازش. مثلا عملیات ریاضی پیچیده ای که همیدگه رو خنثی میکنن تو فاصله های زیاد از هم روی اعداد اجراکن و در ضمن، خود کلید رو هم از نتیجه یک سری عملیات ریاضی عجیب و غریب - که باید طراحی کنی - بگیر.
4-همیشه مد نظر داشته باش که نمیشه نفوذگر رو تا ابد پشت در محافظت های این دنیایی نگه داشت...