+1 امتیاز
با سلام و احترام

من یک پروژه با زبان سی شارپ نوشتم و بانک اطلاعاتی SQL پروژه رو هم با همون ویژوال استودیو 2012 ایجاد کردم(اصلا sqlserver  رو سیستمم نصب نیست). حالا که قراره نرم افزار رو به چند نفر بدم، به این فکر افتادم که به احتمال زیاد از اطلاعات توی جداول بانک اطلاعاتی نرم افزار(که زمان زیادی صرف جمع آوری اون ها کردم) سو استفاده خواهد شد، چون اگه کسی نرم افزار SQLServer  یا ویژوال استودیو رو روی سیستمش داشته باشه، میتونه به راحتی به بانک اطلاعاتی و کلیه اطلاعات هر جدول دست پیدا کنه. خواهش میکنم راهنمایی کنید که حالا امکان رمز گذاری روی دیتا بیس هست یا باید دوباره بانک رو با SQLServer تولید کنم و ... ؟؟؟ راه حلی وجود داره که با نوشتن یک برنامه در محیط ویژوال استودیو، بانک اطلاعاتی پروژه رو رمزگذاری کرد که دیگه هیچ سیستمی نتونه اطلاعات جداول اون رو باز کنه ...؟؟؟

3 پاسخ

+2 امتیاز
سلام

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

   روشی که شما فرمودید، زمانی کاربرد داره که افراد به بانک اطلاعاتی mdf. دسترسی نداشته باشند(برنامه تحت شبکه باشه)....

من امتحان کردم، اگه برنامه بدون استفاده از شبکه طراحی بشه و از بانک اطلاعاتی محلی استفاده بشه، حتی اگر پسورد هم داشته باشه، به راحتی با اضافه کردن بانک به ویژوال استودیو، کلیه اطلاعات در دسترس قرار میگیرند....!!!
توسط (107 امتیاز) 1 4
+2 امتیاز
از رمزنگاری استفاده کنید و اطلاعاتتون رو بصورت رمز شده در بانک ذخیره کنید . روشهای زیادی هست . یکی از این روشها استفاده از الگوریتم MD5  هست که با سرچ در گوگل مثالهای فراوانی هست .

به این وبلاگ هم سر بزنید . یک نمونه مثال کامل در خصوص رمزنگاری اطلاعات داره : http://abirayaneh.blogfa.com
سلام ، خیر این روش کاربردی نداره . Md5 جز الگوریتم های رمزنگاری یک طرفه هستش و وقتی شما داده ای رو رمز کنید دیگه نمی تونید به اصل داده دسترسی داشته باشید . در حالی که ایجاد کننده تاپیک به احتمال خیلی زیاد باید از داده ها در برنامش استفاده کنه
توسط (6,145 امتیاز) 5 11 116
+2 امتیاز

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

این تاپیک هم می تونه کمک خیلی زیادی بهتون بکنه . بنده تجربه عملی ندارم ولی میشه پیاده سازیش کرد
 

سلام

   دقیقا درست می فرمائید.....  دیتا بیس من حجم زیادی داره و جداول زیادی داره. چون این اطلاعات به طور مستقیم در برنامه به کار می ره و از view و search های مربوط به SQL استفاده کردم، دیگه نمیتونم از روش کد گذاری استفاده کنم، چون مزیت استفاده از view و search و سرعت بالای برنامه رو از دست می دم و این روش صرفا برای فرم login کاربرد داره...

به نظرتون راهی هست که بدون استفاده از رمزگذاری تک تک اطلاعات جداول، کل بانک رو قفل گذاری کرد...؟؟
توسط (107 امتیاز) 1 4


string txt_to_base64(string txt)
        {
            var bytes = Encoding.UTF8.GetBytes(txt);
            var base64 = Convert.ToBase64String(bytes);
            return base64;
        }

        string base64_to_txt(string base64_txt)
        {
            var base64 = base64_txt;
            var data = Convert.FromBase64String(base64);
            //------------------------
            var str = Encoding.UTF8.GetString(data);
            return str;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Text=txt_to_base64(textBox1.Text);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox2.Text=base64_to_txt(textBox2.Text);
        }

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

توسط (3,062 امتیاز) 1
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...