PDA

View Full Version : سوال: رمز گذاشتن یا lock کردن فایل



Mohsen229266
چهارشنبه 18 دی 1387, 19:39 عصر
با سلام خدمت اساتید محترم
می خواستم بدونم چطور می شه از طریق کد نویسی بر روی یک فایل مثلا txt رمز گذاشت یا بتونم اونو lock ش کنم ودوباره اون فایل رو به حالت اولش بر گردونم


با تشکر از دوستان

30yavash
چهارشنبه 18 دی 1387, 20:31 عصر
برای منم جالبه اینو بدونم.
مثل کاری که Hide Folders XP می کنه.
حتا با خروج کامل از برنامه هم فایلها مخفی هستند!
حتا اگر سرویس برنامه رو هم متوقف کنید بازم فایلها مخفی هستند!

Mohsen229266
پنج شنبه 19 دی 1387, 10:57 صبح
من اول جستجو کردم بعد تایپیک جدید ایجاد کردم من منظورم رمز گذاشتن یا lock کردن فایل های ویندوز هست نه مخفی کردن فایل ها مثلا نرم افزار های زیادی وجود داره که این کارو انجام میده من می خوام این کار رو با استفاده از کد انجام بدم

SMRAH1
پنج شنبه 19 دی 1387, 11:11 صبح
سلام

در مورد Convert.ToBase64String و Convert.FromBase64String (راه های ساده رمز کردن داده با .NET ) جستجو کنید!

موفق باشید

Amir Oveisi
پنج شنبه 19 دی 1387, 12:20 عصر
در مورد Rijendael و PasswordDrivenBytes و MD5 جستجو کنید

Mohsen229266
پنج شنبه 19 دی 1387, 13:17 عصر
با تشکر از دوستان من در مواردی که ذکر شد جستجو کردم ولی همه اش در باره کد کردن رشته بود من منظورم فایهایی مثل exe , jpg,txt,.. است اگه ممکنه لینکی از همین سایت در این تایپیک بزارید که جواب سوال من باشه متشکرم

SMRAH1
پنج شنبه 19 دی 1387, 14:59 عصر
سلام

اگر می خواهیم که محتویات یک فایل را کد کنید،رفقی نمی کند.کافیست ابتدا محتویات فایل را (یک جا یا تکه تکه) در حافظه را بگذاری کنید،رمزگذاری یا رمز شکنی کنید و سپس دوباره در فایل بنویسید.

فرایند همان است.اگر در هر یک از این قسمت ها جستجو کنید (خواندن فایل ،نوشتن فایل ،کد کردن محتویات و ..) به راحتی می توانید ،مفهوم مورد نظرتون رو ایجاد کنید.

موفق باشید

Amir Oveisi
پنج شنبه 19 دی 1387, 16:05 عصر
اگر هم میخواید فایل مورد نظر موقه باز شدن password بخواد قضیه همینه ولی یه سری کارای اضافه هم میخواد که البته باز هم بحث شده بود قبلا (چون خودم تو بحث بودم مطمئنم که هست)

Mohsen229266
پنج شنبه 19 دی 1387, 16:15 عصر
با سلام من نمی خواهم محتویات یک فایل (یا همان رشته) را کد کنم من می خوهم یک فایل که حتی شاید متنی هم نباشد را از لحاظ سطح دسترسی کاربر به فایل محدود کنم مثل نرم افزار Folder Security personal و ... که سطح دسترسی کاربر را به فایل و پوشه محدود می کند
اگر از توابع API تابعی هست که این کار را انجام دهد معرفی کنید ممنو میشم

Amir Oveisi
پنج شنبه 19 دی 1387, 16:18 عصر
محدودیت از چه نظر؟
سوالتون خیلی کلیه
لطفا دقیق تر بیان کنید تا جواب دقیق تری بگیرید

موفق باشید
jooje

30yavash
جمعه 20 دی 1387, 09:22 صبح
من نرم افزار Hide Folders 2009 رو بررسی کردم دیدم این نرم افزار یه درایور داره.
در واقع با استفاده از این درایور به کرنل دسترسی پبدا کرده و فایلها رو از ویندوز مخفی می کنه.

Mohsen229266
پنج شنبه 26 دی 1387, 20:28 عصر
با تشکر از پاسخ دوستان
حتما تا به حال نرم افزار های File lock , lock my pc,... را امتحان کردید که یک فایل یا فولدر را از لحاظ دسترسی کاربر غیر ممکن می کند یعنی کاربر وقتی آن فایلی که خارج از دسترسی انتخاب شده را
می خواهد باز کند پیغام "فایل غیر قابل دسترسی است" را می دهد حالا من میخوام بدونم که یک فایل چه جوری غیر قابل دسرسی میشه با کد C# البته در MSDN سرچ کردم یک تابع به نام lock وجود داره که این
کار رو انجام میده ولی مشکل اینجاست که تا زمانی که برنامه نوشته شده Run هست فایل غیر قابل دسترس کاربرهست وقتی برنامه رو close میکنیم فایل دوباره قابل دسترس کابر میشه

با تشکر فراوان از دوستان و اساتید

Amir Oveisi
چهارشنبه 02 بهمن 1387, 15:48 عصر
میتونین برنامتونو بصورت سرویس بنویسین تا همیشه در حال اجرا باشه

Mohsen229266
چهارشنبه 02 بهمن 1387, 17:04 عصر
با سلام خدمت همه دوستان
جناب bermooda متشکر از پاسختون ولی من نمیخوام اگه اون فایل روی یک سیستم دیگه کپی شد قابل
دسترسی کاربر باشه

slashslash2009
چهارشنبه 02 بهمن 1387, 18:00 عصر
یه سری ازین برنامه ها میان محتویات فایلها رو کد می کنند و واسه اینکه بشه اونا رو دید دوباره اونارو از حالت کد در میارن که این بهترین راحه. اگه غیر ازین باشه خیلی راحت میشه به فایل دسترسی پیدا کرد .

Amir Oveisi
چهارشنبه 02 بهمن 1387, 18:07 عصر
ولی من نمیخوام اگه اون فایل روی یک سیستم دیگه کپی شد قابل
دسترسی کاربر باشه

خوب همونطور که دوستمون گفتند باید محتویات فایل رو encrypt کنین و بعد سطح دسترسی رو تعیین کنید. موقعی که کاربر مجاز بود فایل رو باز کنه اون موقع فایل رو decrypt میکنید و بهش نشون میدین.

اینجوری اگر فایل به یسیتم دیگه ای برده بشه یا اصلا برنامه شما uninstall شده باشه باز هم اون فایل قابل استفاده نخواهد بود (البته میتونه فایل رو ببینه و بازش کنه اما محتویات فایل براش نا مفهوم خواهند بود) و کاربر باید از طریق برنامه شما بهش دسترسی داشته باشه (به شرطی که اجازه داشته باشه).

موفق باشید
jooje

Mohsen229266
چهارشنبه 02 بهمن 1387, 21:00 عصر
مرسی از پاسخ شما من میخوام Backup یک دیتابیس sql رو کد کنم من متن اونرو اینکریپت کردم ولی مشکل اینجاست موقع خوندن و انتساب در string یه سری کاراکتر ها رو به صورت اشتباه میخونه مثل ےےےےےےے رو ������� میخونه و ... واسه همین از این راه صرف نظر کردم اگه دوستان راه بهتری برای خوندن این فایل دارن که عینا همان رشته فایل در string کپی بشه بگن ممنون میشم من از I/O برای خوندن استفاده کردم

Mohsen229266
یک شنبه 06 بهمن 1387, 19:53 عصر
اگه کسی جواب من و بده ممنون میشم
من مشکلم کد کردن رشته نیست خوندن درست و دقیق یک فایل هست من وقتی یک فایل متنی رو می خونم رشته رو درست در string کپی نمی کنه از I/O برای خوندن یک فایل استفاده می کنم لطفا اگه راه بهتری برای خوندن فایل می دونید که همه کاراکتر ها رو درست بخونه و داخل استرینگی بریزه بگید متشکرم

Mohsen229266
چهارشنبه 09 بهمن 1387, 20:41 عصر
string str;
string path = "e:/db1.txt";
StreamReader sr = File.OpenText(path);
s = sr.ReadToEnd();

من با اين کد متن فايل رو درون متغير s کپي ميکنم ولي يک سري کاکتر ها رو درست نمي خونه

Amir Oveisi
پنج شنبه 10 بهمن 1387, 13:23 عصر
احتمالا باید آخر کار یه بار stream تون رو Flush کنید (با متد Flush).
در ضمن به جای این کدها میتونستین اینو بنویسین:

String s = System.IO.File.ReadAllText("e:\\db1.txt");

Mohsen229266
پنج شنبه 10 بهمن 1387, 19:24 عصر
با سلام و تشکر از دوستان من کار هایی که جناب bermood فرمودن روی یک فایل انجام دادم درست جواب داد ولی وقتی فایلbackup رو با کد جناب bermooda اجرا میکنم فقط کلمه اول اونو می خونه من فایل backup رو ضمیمه کردم اگه میشه خودتون لطف کنید امتحان کنید

Amir Oveisi
شنبه 19 بهمن 1387, 12:33 عصر
این فایل text که گذاشتین چیه؟
کذ برنامتونم بذارین تا ببینیم چه مشکلی وجود داره

Mohsen229266
دوشنبه 21 بهمن 1387, 17:54 عصر
این فایل text که گذاشتین چیه؟
کذ برنامتونم بذارین تا ببینیم چه مشکلی وجود داره

با سلام من میخوام محتویات این فایلی رو که آپلود کردم در سی شارپ دریک متغیر string بریزم ولی مشکل اینجاست که همه کاراکتر هاشو درست نمی خونه خودتون امتحان کنید کدمو در همین صفحه گذاشتم و شما هم کدی واسه من گذاشتید که باز هم درست نمیخونه همه کاراکتر هارو در ضمن این فایل backup دیتابیس sql 2000 هست اگه یک کاراکترم اشتباه بخونه دیگه نمیشه از اون به عنوان یک فایل backup استفاده کرد با تشکر

Amir Oveisi
دوشنبه 21 بهمن 1387, 23:43 عصر
خوب شما بصورت بایت بخونید File.ReadAllBytes

Mohsen229266
پنج شنبه 24 بهمن 1387, 20:06 عصر
با تشکر از پاسختون ولی با این کار همه کاراکتر ها تبدیل به عدد می شن اگه می شه لطف کنین کد بزارید دوباره اون string رو میخوام در یک فایل متنی تبدیل کنم ولی مهم خوندن اونه

Amir Oveisi
جمعه 25 بهمن 1387, 01:20 صبح
برای تبدیل آرایه بایت به string‌:

Encoding.UTF8.GetString(byte[]);

برعکسش:

Encoding.UTF8.GetBytes(string);

Mohsen229266
سه شنبه 06 اسفند 1387, 17:40 عصر
با تشکر از پاسخ شما یک سوال دیگه چطور میشه قسمتی از متن یک فایل رو حذف کرد.
با append به اخر فایل میشه اضافه کرد اگه بخوایم به اول یا وسط فایل, متنی اضافه کنیم چطور ممکنه
این سوال ها واسه اینه که متن فایل زیاد هست و زمان زیادی صرف خوندن فایل میشه