سلام
می خواستم بدونم چه جوری می تونم روی یه فایل قفل بذارم ؟
چه جوری می تونم فایل قفل دارو باز کنم ؟
و چه طور می تونم قفل رو از روش بردارم؟
:11:
Printable View
سلام
می خواستم بدونم چه جوری می تونم روی یه فایل قفل بذارم ؟
چه جوری می تونم فایل قفل دارو باز کنم ؟
و چه طور می تونم قفل رو از روش بردارم؟
:11:
سلام داش مهدی خوبی ان شاالله؟
چه خبرا؟:31:.
با کد زیر میتونی یک فایل رو طوری قفل کنی که هیچ کس نمیتونه به فایل دسترسی پیدا کنه:
به جای "C:\A.txt" فایل مورد نظر رو بزار و بجای "Ali Visual Studio" یوزر سیستمتو بزار.کد:FileInfo MF = new FileInfo(@"C:\A.txt");
System.Security.AccessControl.FileSecurity MFSEC = new System.Security.AccessControl.FileSecurity();
System.Security.AccessControl.FileSystemAccessRule MfAccessRule = new System.Security.AccessControl.FileSystemAccessRule("Ali Visual Studio", System.Security.AccessControl.FileSystemRights.FullControl, System.Security.AccessControl.AccessControlType.Deny);
MFSEC.AddAccessRule(MfAccessRule);
MF.SetAccessControl(MFSEC);
برای باز کردن فایل:
کد:FileInfo MF = new FileInfo(@"C:\A.txt");
System.Security.AccessControl.FileSecurity MFSEC = new System.Security.AccessControl.FileSecurity();
System.Security.AccessControl.FileSystemAccessRule MfAccessRule = new System.Security.AccessControl.FileSystemAccessRule("Ali Visual Studio", System.Security.AccessControl.FileSystemRights.FullControl, System.Security.AccessControl.AccessControlType.Allow);
MFSEC.AddAccessRule(MfAccessRule);
MF.SetAccessControl(MFSEC);
موفق باشی.
ممنونم رفیق:11:
یه سوال :
اگه ما بخوایم روی یه فایل پسورد بزاریم(مثل گذاشتن پسورد در فایل های rar و zip ) باید چی کار کنیم؟
سلام دوست عزیز.نقل قول:
فایل های rar فقط مختص به برنامه winrar میباشد و خود برنامه روی فایل پسورد میزاره و پسورد رو میخونه پس شما باید یه فایل مجزا بسازی مثل winrar و هر کاری دوست داشتی با فایلت بکنی. و اینو هم بگم که شما نمیتونی به فایلهای winrar دسترسی داشته باشی و اینکار فقط توسط برنامه winrar انجام میگیره...
موفق باشید.
نقل قول:
میشه معادل VB این کدهارو بزاری ؟
می بخشید
یعنی ما به هیچ وجه نمی تونیم در دات نت روی فایلمون پسورد بزاریم؟
برای قفل کردن :نقل قول:
برای باز کردن :کد:
Dim FileSec AsNew Security.AccessControl.FileSecurity()
Dim AccessRule AsNew Security.AccessControl.FileSystemAccessRule(Environment.UserName, Security.AccessControl.FileSystemRights.FullControl, Security.AccessControl.AccessControlType.Deny)
Dim FInfo AsNew FileInfo("c:\a.txt")
FileSec.AddAccessRule(AccessRule)
FInfo.SetAccessControl(FileSec)
کد:
Dim FileSec AsNew Security.AccessControl.FileSecurity()
Dim AccessRule AsNew Security.AccessControl.FileSystemAccessRule(Environment.UserName, Security.AccessControl.FileSystemRights.FullControl, Security.AccessControl.AccessControlType.Allow)
Dim FInfo AsNew FileInfo("c:\a.txt")
FileSec.AddAccessRule(AccessRule)
FInfo.SetAccessControl(FileSec
سلام خسته نباشید.
نقل قول:
میشه معادل VB این کدهارو بزاری ؟
باز کردن قفل:کد:Dim MF As New FileInfo("C:\A.txt")
Dim MFSEC As New System.Security.AccessControl.FileSecurity()
Dim MfAccessRule As New System.Security.AccessControl.FileSystemAccessRule("Ali Visual Studio", System.Security.AccessControl.FileSystemRights.FullControl, System.Security.AccessControl.AccessControlType.Deny)
MFSEC.AddAccessRule(MfAccessRule)
MF.SetAccessControl(MFSEC)
کد:Dim MF As New FileInfo("C:\A.txt")
Dim MFSEC As New System.Security.AccessControl.FileSecurity()
Dim MfAccessRule As New System.Security.AccessControl.FileSystemAccessRule("Ali Visual Studio", System.Security.AccessControl.FileSystemRights.FullControl, System.Security.AccessControl.AccessControlType.Allow)
MFSEC.AddAccessRule(MfAccessRule)
MF.SetAccessControl(MFSEC)
چرا نمیشه مهدی جان منتحی باید با بایت ها سرو کار داشته باشی و اطلاعات کافی داشته باشی.مثلاً خودت بتونی یه فایل رو فشرده کنی و پسورد رو تو خود فایل ذخیره کنی البته با کدگذاری.کد:یعنی ما به هیچ وجه نمی تونیم در دات نت روی فایلمون پسورد بزاریم؟
موفق باشید.
میشه توضیح بدید که چه طوری می تونم یه فایل رو فشرده کنم؟:11:نقل قول:
فکر کنم توسط کامپوننت winrar بشه .
اگه یکی توضیح بیشتری می داد ممنون میشدم:11:نقل قول:
سلام
خود دات نت مجهز به دو کلاس آماده جهت فشرده سازی انواع اطلاعات (جریانگرا یا stream) است و در اصلی میتواند هر چیزی را فشرده کند.نقل قول:
میشه توضیح بدید که چه طوری می تونم یه فایل رو فشرده کنم؟
البته بدیهی است که همواره پیاده سازی دوبار الگوریتم فشرده سازی نتیجه چندان مثبتی نمیدهد...
مثل فشرده سازی فایلهای jpg یا zip و rar که خودشان به نوعی فشرده هستند.
لینک ثابت دانلود کد نمونه:
support.h02.ir/fwlink/?LinkId=1004349577
لینک دانلود فعلی:
h02.ir/Downloads/?familyid=EC2A8AF2-A522-4A2F-BA5B-F526531892A4
=====
برای فشرده سازی فایلها میتوانید از نسخه خط فرمانی winrar هم با کمک دستور System.Diagnostics.Process.Start استفاده کنید.
این یک تک فایل است که کافی است کنار exe شما قرار داشته باشد و هیچ نصب و چیز خاص دیگری نیاز ندارد.
برای توضیحاتی تکمیلی و دانلود به تاپیک زیر و پست 6 مراجعه کنید:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوستان عزیز ممنونم
من به کمک شما تونستم یه فایل رو فشرده کنم و به نوعی از دست رس عموم محافظت کنم ولی هنوز یه سوال برام بی جواب مونده -> چه جوری می تونم روی فایل مورد نظر پسورد بزارم؟:11:
سلام
اگر اینطور از دسترس عموم محافظت کردن مد نظر شما است،نقل قول:
من به کمک شما تونستم یه فایل رو فشرده کنم و به نوعی از دست رس عموم محافظت کنم ولی هنوز یه سوال برام بی جواب مونده -> چه جوری می تونم روی فایل مورد نظر پسورد بزارم؟
شما میتوانید هر دیتایی را با کمک کلاسهای رمزنگاری دات نت، به شکل رمزشده ضخیره و بازیابی کنید
تبدیل رمزنگاری دو طرفه اطلاعات
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
البته اگر اینطور از دسترس عموم خارج کردن را میخواهید میتوانید به راحتی از winzip و winrar هم استفاده کنید و روی فایلهایتان رمزهای بلند قرار دهید.
موفق باشید.
سلام
من از قسمت سبز رنگ کد زیر :
کد:System.Security.Cryptography.DESCryptoServiceProvider DESCrypto = new
System.Security.Cryptography.DESCryptoServiceProvider();
System.Collections.Generic.List<byte> key = new
System.Collections.Generic.List<byte>();
foreach (char c in FilePassword)
{
key.Add((byte)c);
}
DESCrypto.Key = key.ToArray();
DESCrypto.IV = key.ToArray();
ارور زیرو می گیرم :
کد:Specified key is not a valid size for this algorithm.
میشه بگید مشکل از کجاست؟:11:
سلام
اول باید ذکر کنم که روش تبدیل string شما به []byte شاید در ++C اینطور بوده ولی در #C چندان صحیح نیست و با نوع encoding های متنوع موجود این زمان سازگار نیست.نقل قول:
میشه بگید مشکل از کجاست؟
بعد...
ابعاد بیتی IV باید مطابق با عدد BlockSize باشد و یا یکی از موارد مندرج در LegalBlockSizes باشد.
Key هم باید مطابق با KeySize و یا یکی از موارد مندرج در LegalKeySizes باشد.
که در مورد الگوریتم DES فقط یک رنج ثابت برای هر دو وجود دارد و هر دو باید فقط و فقط 64 بیتی باشند، به بیان دیگر هر کدام فقط و فقط باید آرایه ای 8 بایتی باشند.
برای راه حل میتوانید رمز string خود را با کمک Encoding.UTF8 به []byte تبدیل کنید و سپس آن را با MD5 به 16 بایت تبدیل کنید و سپس از 8 بایت اول برای IV و 8 بایت دوم برای Key استفاده کنید!
موفق باشید.
سلام[quote=_H2_;3934841]اول باید ذکر کنم که روش تبدیل string شما به []byte شاید در ++C اینطور بوده ولی در #C چندان صحیح نیست و با نوع encoding های متنوع موجود این زمان سازگار نیست.بعد...ابعاد بیتی IV باید مطابق با عدد BlockSize باشد و یا یکی از موارد مندرج در LegalBlockSizes باشد.Key هم باید مطابق با KeySize و یا یکی از موارد مندرج در LegalKeySizes باشد.که در مورد الگوریتم DES فقط یک رنج ثابت برای هر دو وجود دارد و هر دو باید فقط و فقط 64 بیتی باشند، به بیان دیگر هر کدام فقط و فقط باید آرایه ای 8 بایتی باشند.برای راه حل میتوانید رمز string خود را با کمک Encoding.UTF8 به []byte تبدیل کنید و سپس آن را با MD5 به 16 بایت تبدیل کنید و سپس از 8 بایت اول برای IV و 8 بایت دوم برای Key استفاده کنید![/quote]راستش من با توجه به الگوریتمی که گفتید کد زیرو پیاده کردم ولی خودم زیاد ازش سر در نیاوردم که دقیقا چی کار انجام دادم اگه میشه در مورد خطوط کدی که نوشتم توضیح بدید و بگید چی کار میکنن!!!:20::11:اگه مشکلی هم داره بگید.:11:[CODE]privatevoidGetIV_Key_DES(stringFilePassword, outbyte[] IV, outbyte[] Key){byte[] UTF8PassBytes = System.Text.Encoding.UTF8.GetBytes(FilePassword);System.Security.Cryptography.MD5md5 =System.Security.Cryptography.MD5.Create();byte[] MD5PassBytes = md5.ComputeHash(UTF8PassBytes);IV = newbyte[8]; Key = newbyte[8];for (inti = 0; i < 8; i++){ IV[i] = MD5PassBytes[i]; Key[i] = MD5PassBytes[i + 8]; }}[/CODE]
سلام
گمانم این اولین باری است که در تاریخ بشریت(!) کسی از من همچین سوالی میپرسد!
یعنی واقعاً شما این کد را نوشته اید و نمیدانید چه میکند؟ این کد کوچک است ولی خیلی خوب است و یکم باورش سخت میشود.نقل قول:
اگه میشه در مورد خطوط کدی که نوشتم توضیح بدید و بگید چی کار میکنن!!!
از این جمله رسیدن به این کد خیلی خوب بود! با توجه به نیمچه شناختی که از شما دارم متعجبم کردید. :20:کد:private void GetIV_Key_DES(string FilePassword, out byte[] IV, out byte[] Key)
{
byte[] UTF8PassBytes = System.Text.Encoding.UTF8.GetBytes(FilePassword);
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] MD5PassBytes = md5.ComputeHash(UTF8PassBytes);
IV = new byte[8];
Key = new byte[8];
for (int i = 0; i < 8; i++)
{
IV[i] = MD5PassBytes[i];
Key[i] = MD5PassBytes[i + 8];
}
}
==============نقل قول:
برای راه حل میتوانید رمز string خود را با کمک Encoding.UTF8 به []byte تبدیل کنید و سپس آن را با MD5 به 16 بایت تبدیل کنید و سپس از 8 بایت اول برای IV و 8 بایت دوم برای Key استفاده کنید
UTF8 یک روش کدینگ بین Ascii و Unicode است که برای کاراکترهای استاندارد Ascii از یک بایت و برای کاراکترهای فرهنگ های دیگر از دو بایت استفاده میکنید...
نتیجتاً کمترین حجم بایتی اطلاعات متنی را تولید میکند که با تمام فرهنگ ها و استاندارد Unicode منطبق است.
این کدینگ کم کم دارد جای خود را باز میکند و در انواع برنامه های وبی و ویندوزی استفاده میشود.
دستور اول شما string رمز را (که میتواند فارسی، انگلیسی، یونانی، چینی و ...) باشد را به یک آرایه بایتی طبق کدینگ utf8 تبدیل میکند.
الگوریتم md5 یک الگوریتم قدیمی و نوعی HashAlgorithm یکطرفه است (البته چندان از نظر امنیتی مستحکم نیست و الگوریتم های SHA رمزنگاری یکطرفه بهتری ارائه میدهد) ولی برای اینکار md5 بسیار مناسب است...
1- هر ورودی با هر تعداد بایت را به یک خروجی آرایه 16 بایتی تبدیل میکند (دقیقاً چیزی که ما میخواهیم)
2- ما از خود این الگوریتم مستقیم برای رمزنگاری استفاده نکرده ایم (اصلاً یکطرفه است و نمیشد) و این فقط یک کلید مناسب برای الگوریتم اصلی که DES باشد تولید میکند، در نتیجه روش رمزنگاری ساده ترش اصلاً مهم نیست و حفاظت اصلی بر عهده DES است که دو طرفه و کلید دار است.
دستورات for هم که مشخص است و خروجی 16 بایتی را به دو خروجی 8 بایتی میشکند.
موفق باشید.
ممنون
اگه میشه یکمی هم در مورد IV و Key توضیح بدین.(مثلا کار IV چیه؟)
من برای باز کردن قفل هم باید از همین IV و Key استفاده کنم؟!!
با سلام خدمت دوستان عزیز :11:
من اگه بخوام یه فایل رو با برنامه نویسی به صورت winrar فشرده و رمز نگاری کنم باید چی کار کنم ؟
سلام
با کمک دوستان در همین تاپیک برنامه ی زیر نوشته شد اگه جایی از کدها به نظر شما دوستان باید تغییر کند ممنون میشم اگه بگید.
در ضمن منتظر جواب دو پست قبلی هم هستم:11:
کد:http://rapidshare.com/files/253349134/MVW_LockFiles.zip.htmlhttp://rapidshare.com/files/253349134/MVW_LockFiles.zip.html
سلام
IV یک مقدار خاص است که معمولاً به صورت مستقیم برای رمز عبور بودن استفاده نمیشود.نقل قول:
اگه میشه یکمی هم در مورد IV و Key توضیح بدین.(مثلا کار IV چیه؟)
در مقابل Key کلید رمزنگاری و رمزگشایی اطلاعات است.
مثلاً شما میتوانید مقدار IV را در برنامه و مختص برنامه خود یک مقدار ثابت در نظر بگیرید و Key را با password کاربر تغذیه کنید.
ولی به نظرم استفاده از جفت این دو به صورت یک password مشترک هم ایرادی ندارد.
بله، برای رمزگشایی صحیح باید هر دو IV و Key صحیح وارد شوند و همان مقداری باشند که دیتاهای اصلی با انها رمز شده اند.نقل قول:
من برای باز کردن قفل هم باید از همین IV و Key استفاده کنم؟!!
تاجایی که من میدانم، کلاسی آماده ای در فضای Framework برای رمزنگاری و رمزگشایی winrar نداریم...نقل قول:
من اگه بخوام یه فایل رو با برنامه نویسی به صورت winrar فشرده و رمز نگاری کنم باید چی کار کنم ؟
شما باید از کامپونت و dll های مخصوص این امر استفاده کنید که با استانداردهای این الگوریتم هماهنگ باشند.
مثل روشی که در پست 6 این تاپیک قبلاً بیان شد.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
البته خودتان هم میتوانید فرمتی جدید بسازید که توانایی فشرده سازی و نگه داری چندین فایل را با هم و پشت سر هم در غالب یک فایل واحد داشته باشد ولی طبیعتاً برای فشرده سازی و بازکردن فایل نهایی به برنامه خود شما نیاز خواهد بود و نرم افزارهای دیگر ان را نمیشناسند.
شما توی این پست یه لینک دانلود دادین که من نمی دونم چه جوری می تونم دانلود کنم!!نقل قول:
و در اخر پست هم یه کد دادین که نمیفهمم چی هست !!!
لطفا بیشتر توضیح بدین.
سلام
فرمایشاتی میفرمائید !!!!نقل قول:
شما توی این پست یه لینک دانلود دادین که من نمی دونم چه جوری می تونم دانلود کنم!!
در لینک زیر کافیست روی فایل کلبیک کنید تا دانلود انجام شود.
cid-9b2bdd1b12ce8c7d.skydrive.live.com/self.aspx/H2FX.Net/RarCommandLine.zip
(روی همان آیکون فایل zip کلیک کنید، تازه لینکی در بالایش با نام Download هم وجود دارد)
همانطور که در پست 12 گفتم اینها دستورات خط فرمانی است و با تابع System.Diagnostics.Process.Start اجرا میشود...نقل قول:
و در اخر پست هم یه کد دادین که نمیفهمم چی هست !!!
دو تابع فوق در هر شرایطی کار میکنند (مخصوصاً که مسیر rar.exe را صراحتاً و مطلق میکنند...کد://sourcename -> rarname.rar
//rar.exe a "rarname" "sourcename"
System.Diagnostics.Process.Start("rar.exe", @"a ""rarname"" ""C:\file.doc""");
یا
public static void RarCompress(string source, string rardestin)
{
string rarfile = System.IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "rar.exe");
System.Diagnostics.Process.Start(rarfile, "a \"" + rardestin +"\" \"" + source + "\"");
}
//rarname.rar -> destinname
//rar.exe x "rarname" "destinname"
public static void RarDecompress(string rarsource, string destin)
{
string rarfile = System.IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "rar.exe");
System.Diagnostics.Process.Start(rarfile, "x \"" + rarsource + "\" \"" + destin + "\"");
}
فقط کافی است rar.exe را کنار exe خود قرار دهید و یکی از دو تابع مذکور را با نام فایلهای منبع و مقصد فراخوانی کنید.
موفق باشید.
در مورد مطالب پست 14 همین تاپیک
اگه ما به این روش قفل بذاریم اگه دوباره روی فایل قفل شده قفل بذاریم میشه یا به راحتی میشه فایل قفل شده رو حذف کرد که اینها چندان قشنگ نیستن آیا راه حلی برای رفع این مشکلات وجود داره؟
سلام
من تنها دو راه برای جلوگیری از حذف فایل میدانم ...نقل قول:
به راحتی میشه فایل قفل شده رو حذف کرد
1- فایلی که توسط برنامه ای باز شده و الان دارد استفاده میشود.
(راه حل پاک کردن: برنامه را میتوان endtask کرد یا رایانه را با cd بوت کرد.)
2- فایلهایی که account فعلی ویندوز که فرد با آن user و pass وارد ویندوز شده مجوز امنیتی دسترسی به فایل مذکور را نداشته باشد.
(راه حل پاک کردن: میتوان با یک account دیگر که admin است وارد ویندوز شد و یا ویندوز را عوض کرد و یا رایانه را با cd بوت کرد.)