سلام
من میخوام برای فیلمهای آموزی قفل بذارم ( یه پلیر اختصای که فقط اون بتونه فیلمها رو پخش کنه و بعد پلیر رو روش قفل نرم افزاری بزارم ) ولی نیاز به سورس و مثال دارم
اگر راه بهتری هم سراغ دارین ممنون میشم راهنمایی کنید
با تشکر
سلام
من میخوام برای فیلمهای آموزی قفل بذارم ( یه پلیر اختصای که فقط اون بتونه فیلمها رو پخش کنه و بعد پلیر رو روش قفل نرم افزاری بزارم ) ولی نیاز به سورس و مثال دارم
اگر راه بهتری هم سراغ دارین ممنون میشم راهنمایی کنید
با تشکر
با سلام
شما میتونید دو نرم افزار تهیه کنید و نحوه ی ساختش همانند قفل نرم افزاری هست
یک نرم افزار کدساز که طرف سازنده نصبه و یک نرم افزار شبیه به پلیر که نه تنها پلیر هست بلکه وظیفه Decode را هم دارد
در نرم افزار سمت مشتری یک کد تولید میشود که از سخت افزارهای سیستم استخراج شده و پس از ارسال برای شما یک فایل باید تحویل بدید که Encode شده باشد که شامل کد محصول و کد سیستم و کد فعال سازی باشد
قبلاً درباره کد نرم افزاری صحبت کردم میتونید در سایت جستجو کنید
در کل شما باید فایل آموزشی را Encode و Decode کنید
موفق باشید
لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
قوانین پرسش های دانشجویی
برای درست وارد شدن کد در قالب C# سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C# منتفل کنید
نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها
سلام
اگر میخواید اینکار را در سی شارپ انجام بدید باید فیلم ها را در دیتابیس ذخیره کنید
با سلام
مطمئنید خوب گشتید؟
قبلاً با این کد کار میکردم که از code project گرفتم
private void EncryptFile(string inputFile, string outputFile)
{
try
{
string password = @"myKey123"; // Your Key Here
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);
string cryptFile = outputFile;
FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);
FileStream fsIn = new FileStream(inputFile, FileMode.Open);
int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
fsIn.Close();
cs.Close();
fsCrypt.Close();
}
catch
{
MessageBox.Show("Encryption failed!", "Error");
}
}
private void DecryptFile(string inputFile, string outputFile)
{
{
string password = @"myKey123"; // Your Key Here
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);
FileStream fsCrypt = new FileStream(inputFile, FileMode.Open);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateDecryptor(key, key),
CryptoStreamMode.Read);
FileStream fsOut = new FileStream(outputFile, FileMode.Create);
int data;
while ((data = cs.ReadByte()) != -1)
fsOut.WriteByte((byte)data);
fsOut.Close();
cs.Close();
fsCrypt.Close();
}
}
استفاده :
private void btnEncrypt1_Click(object sender, EventArgs e)
{
EncryptFile(@"D:\(1) Pad.avi", @"C:\Test\Encrypt.avi");
}
private void btnDecrypt_Click(object sender, EventArgs e)
{
DecryptFile(@"C:\Test\Encrypt.avi", @"C:\Test\Decrypt.avi");
}
لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
قوانین پرسش های دانشجویی
برای درست وارد شدن کد در قالب C# سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C# منتفل کنید
نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها
این یک مثال بود و صرفاً هر جایی که میخاد میتونه قرارش بده
میتونه به عنوان یک فایل temp قرا داده باشه
بعدش این سناریو مال زمانی هست که نرم افزار ارائه شده و میخواهد فایل تصویری را به مشتری بصورت آپدیت تحویل داده شود
اگر هم فایل ها آماده باشن که اصلاً نیازی به کدگذاری نیست و میتواند از Assembly.GetExecutingAssembly() استفاده کند
لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
قوانین پرسش های دانشجویی
برای درست وارد شدن کد در قالب C# سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C# منتفل کنید
نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها
عرض کردم اگر میخواید در سی شارپ اینکار را انجام بدید روشش اینه
یعنی رمزنگاری کردن فیلم ها
حالا شما وقتی رمزنگاری را انجام دادید دوست داشتید داخل دیتابیس ذخیره کنید دوست داشتید همون فیلم های رمزگاری شده را داخل ی پوشه کنار برنامه بذارید و وقتی برنامه اجرا شد از داخل برنامه پخش کنید ولی خب داخل دیتبایس باشه بهتره
روشی که اقای افشاری گفتند حرف شما درسته عملا وقتی قراره مجدد رمزگشایی بشه و در ی محلی ذخیره بشه برای پخش کلا انگاری کاری نکردیم ولی اگر یکم به صورت حرفه ای تر از این روش استفاده کنید میشه به این شکل هم پیاده سازی کرد.مثلا پوشه ای که قراره فیلم ها بعد رمزگشایی داخل اونجا ذخیره بشه را در ی محلی که کاربر به فکرش نرسه ایجاد کنید و از اون مهمتر کاری کنید که اون پوشه را کاربر نتونه باز کنه.
ولی روش بهتر همونی هستش که بنده گفتم
با عرض اجازه از بزرگان و اساتید!
به نظر من روش اینکریپت کردن و بازیابی روی هارد هرچند تو بهترین مسیر هم باشه به راحتی قابل پیدا کردنه تو همین سی سارپ خودمون کافیه دو تا خط کد بزنی با filesystemwatcher کل دل و روده هارد(تغییراتش) میاد بیرون...
کپی روی دیتابیس هم خوبه ولی هم از نظر حجم دیتابیس به مشکل می خورین هم بازهم مشکل بازیابی تو مورد قبل رو داره
به نظر بنده بهترین روش خوندن فایل از Strame است
اینو بخونید...
https://stackoverflow.com/questions/...-memory-stream
یک نقطه بیشتر فرق بین رحیم و رجیم نیست...از نقطه ای بترس که شیطانیت می کند
________________________
کلا روال و روشش همینه و باید به صورت استریم پخش کنیم
یعنی چون ما نمیخوایم فیلم ها را روی هارد ذخیره کنیم باید به صورت استریم پخش کنیم
خب حالا این بایت هایی که میخوایم به صورت استریم پخش کنیم را از کجا بیاریم؟
یا باید داخل دیتابیس ذخیره کنیم یا فیلم ها را رمزنگاری کنیم بذارم داخل پوشه
در مورد دیتابیس هم اره دیگه وقتی فیلم ذخیره بشه حجم میره بالا ولی مشکلی نداره
ما نمیخوایم کاری با دیتابیس انجام بدیم که حجم دیتابیس مهم باشه