اگه یکی توضیح بیشتری می داد ممنون میشدم![]()
اگه یکی توضیح بیشتری می داد ممنون میشدم![]()
سلام
خود دات نت مجهز به دو کلاس آماده جهت فشرده سازی انواع اطلاعات (جریانگرا یا 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 مراجعه کنید:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوستان عزیز ممنونم
من به کمک شما تونستم یه فایل رو فشرده کنم و به نوعی از دست رس عموم محافظت کنم ولی هنوز یه سوال برام بی جواب مونده -> چه جوری می تونم روی فایل مورد نظر پسورد بزارم؟![]()
سلام
اگر اینطور از دسترس عموم محافظت کردن مد نظر شما است،من به کمک شما تونستم یه فایل رو فشرده کنم و به نوعی از دست رس عموم محافظت کنم ولی هنوز یه سوال برام بی جواب مونده -> چه جوری می تونم روی فایل مورد نظر پسورد بزارم؟
شما میتوانید هر دیتایی را با کمک کلاسهای رمزنگاری دات نت، به شکل رمزشده ضخیره و بازیابی کنید
تبدیل رمزنگاری دو طرفه اطلاعات
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
البته اگر اینطور از دسترس عموم خارج کردن را میخواهید میتوانید به راحتی از winzip و winrar هم استفاده کنید و روی فایلهایتان رمزهای بلند قرار دهید.
موفق باشید.
سلام
من از قسمت سبز رنگ کد زیر :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ارور زیرو می گیرم :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میشه بگید مشکل از کجاست؟![]()
Last edited by mahdi7s; 05-07-2009 at 09:21.
سلام
اول باید ذکر کنم که روش تبدیل 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]راستش من با توجه به الگوریتمی که گفتید کد زیرو پیاده کردم ولی خودم زیاد ازش سر در نیاوردم که دقیقا چی کار انجام دادم اگه میشه در مورد خطوط کدی که نوشتم توضیح بدید و بگید چی کار میکنن!!!اگه مشکلی هم داره بگید.[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]
سلام
گمانم این اولین باری است که در تاریخ بشریت(!) کسی از من همچین سوالی میپرسد!
یعنی واقعاً شما این کد را نوشته اید و نمیدانید چه میکند؟ این کد کوچک است ولی خیلی خوب است و یکم باورش سخت میشود.اگه میشه در مورد خطوط کدی که نوشتم توضیح بدید و بگید چی کار میکنن!!!
از این جمله رسیدن به این کد خیلی خوب بود! با توجه به نیمچه شناختی که از شما دارم متعجبم کردید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
==============برای راه حل میتوانید رمز 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 استفاده کنم؟!!
با سلام خدمت دوستان عزیز
من اگه بخوام یه فایل رو با برنامه نویسی به صورت winrar فشرده و رمز نگاری کنم باید چی کار کنم ؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)