PDA

View Full Version : سوال: رمزگشایی و نمایش اطلاعات رمزنگاری شده در دیتاگرید



armira
سه شنبه 05 آذر 1392, 08:12 صبح
سلام خدمت دوستان عزیز
من یک بانک 2003 Access دارم و قبل از درج رکورد توی بانک ابتدا مقادیر همه ی فیلد ها رو با الگوریتمی که از توی همین سایت پیدا کردم Encrypt میکنم . الگوریتم Decrypt رو هم دارم و به درستی کار میکنه . مشکل من اینجاست که زمانی که دیتاگرید اطلاعات جدول رو نمایش میده همه ی اطلاعات رمز شده هستند . چطور میتونم همه ی رکوردها رو هنگام نمایش توی دیتاگرید به صورت یکجا Decrypt کنم ؟

armira
سه شنبه 05 آذر 1392, 10:56 صبح
خواهش میکنم راهنماییم کنید .

debugger
سه شنبه 05 آذر 1392, 12:41 عصر
اول باید کل اطلاعات را تک تک decrypt کنی بریزی داخل datatable بعد دیتاگریدتو وصل کنی به DataTable

armira
سه شنبه 05 آذر 1392, 12:48 عصر
چطوری تک تک اطلاعات رو decrypt کنم ؟ با حلقه؟؟؟؟

Mahmoud Zaad
سه شنبه 05 آذر 1392, 12:52 عصر
سلام
فرض کنید شما یه دیتاتیل اولیه دارید به اسم tb1 که اطلاعات رو با استفاده از دیتا آداپتر داخل این دیتاتیبل می ریزید. همچنین فرض می کنیم برای تبدیل اطلاعات کد شده به اطلاعات خوانا، یک متد هم به اسم YourMethod دارید، حالا بعد از پر کردن دیتا تیبل مذکور، با یه حلقه Foreach همه اطلاعات رو قابل خواندن می کنیم و در آخر هم اطلاعات رو در دیتاگریدویو می ریزیم:
.
.
.


foreach (DataRow dr in tb1.Rows)
{
dr["field1"] = YourMethod(dr["field1"]);
tb1.AcceptChanges();
}
datagridview1.DataSource=tb1;

debugger
سه شنبه 05 آذر 1392, 12:55 عصر
باید درون حلقه رکورد به رکورد بخونی جلو بری دیکریپت کنی و بریزی داخل DataTable

اصولا این کارهایی که می کنی درست نیست

شما باید فیلدی که EnCrypt شده را در گریدت نمایش ندی . و کاربر اگر خواست اون فیلدتو ببینه . باید روی رکورد مورد نظر روی گریدت کلیک کنه و همون موقع باید با استفاده از Id رکورد اونو دکریپت کنی و به کاربر نشون بدی

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

armira
سه شنبه 05 آذر 1392, 13:00 عصر
بله کاملا درسته . ولی من اطلاعات ضروری رو Encrypt میکنم که اگه کسی به صورت مستقیم به بانک دسترسی پیدا کرد نتونه اطلاعات رو ببینه و فقط از توی برنامه این اطلاعات قابل دسترسی باشه . واسه این چه راهکاری پیشنهاد میکنید ؟

armira
سه شنبه 05 آذر 1392, 14:12 عصر
با کمک دوستان عزیز مشکلم برطرف شد . شماره تلفن Encrypt میشه و توی دیتابیس ذخیره میشه . هنگام نمایش در گرید ، فیلد شماره تلفن Decrypt میشه و در گرید نمایش داده میشه . فایل برنامه رو همینجا میزارم تا شاید به درد کسی بخوره .
113244