PDA

View Full Version : مبتدی: ویدیو رو چگونه داخل برنامه بیاریم



god of war 313
سه شنبه 26 اردیبهشت 1402, 16:35 عصر
سلام دوستان
عنوان سوال زیاد مرتبط نیست فکر کنم.

من میخوام یک برنامه بسازم و توش عکس و ویدیو بیارم.

بعدش باید تو ریسورس بیارم(که نمیخوام پوشه رو بدم به کاربر)

سوالم اینه راهی هست که ویدیو رو جوری بیارم که در دسترس کاربر نباشه و فقط از تو برنامه بتونه به اون دسترسی نداشته باشه؟ (مثل بازی ها)

با تشکر.

پرستو پارسایی
سه شنبه 26 اردیبهشت 1402, 18:49 عصر
بله، شما می‌توانید فایل‌های ویدئویی و تصویری را به صورت embedded در برنامه‌ی خود قرار دهید. و برای دسترسی به این فایل در برنامه، باید از کدی مشابه زیر استفاده کنید


byte[] videoBytes = Properties.Resources.MyVideoFile;

god of war 313
پنج شنبه 28 اردیبهشت 1402, 16:30 عصر
با سلام و ممنون

میشه بی زحمت یکم بیشتر توضیح بدید تو نت چیزی که به دردم بخوره پیدا نکردم

پرستو پارسایی
پنج شنبه 28 اردیبهشت 1402, 22:57 عصر
سلام برای رمزگذاری یک فایل ویدیویی، می‌توانید از الگوریتم رمزنگاری AES استفاده کنید. در این روش، با استفاده از یک کلید رمزنگاری، فایل ویدیویی رمزگذاری می‌شود و برای باز کردن آن، نیاز به کلید رمزنگاری دارید



using System;
using System.IO;
using System.Security.Cryptography;
using System.Windows.Forms;


namespace FileEncryption
{
public partial class MainForm : Form
{
private byte[] key; // کلید رمزنگاری


public MainForm()
{
InitializeComponent();
}


// انتخاب فایل برای رمزگذاری
private void SelectFileButton_Click(object sender, EventArgs e)
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
filePathTextBox.Text = openFileDialog.FileName;
}
}


// رمزگذاری فایل ویدئویی با استفاده از الگوریتم AES
private void EncryptVideoButton_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(filePathTextBox.Text))
{
MessageBox.Show("لطفا فایل ویدئویی را انتخاب کنید.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


// باز کردن دیالوگ ذخیره فایل رمزگذاری شده
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// تولید کلید رمزنگاری
using (var aesAlg = Aes.Create())
{
aesAlg.GenerateKey();
key = aesAlg.Key;
}


// رمزگذاری فایل ویدئویی و ذخیره در فایل جدید
using (var aesAlg = Aes.Create())
{
aesAlg.Key = key;
using (var cryptoStream = new CryptoStream(File.Create(saveFileDialog.FileName), aesAlg.CreateEncryptor(), CryptoStreamMode.Write))
{
using (var fileStream = File.OpenRead(filePathTextBox.Text))
{
fileStream.CopyTo(cryptoStream);
}
}
}


// نمایش پیام موفقیت‌آمیز بودن رمزگذاری و کلید رمزنگاری
MessageBox.Show($"فایل ویدئویی با موفقیت رمزگذاری شد. کلید رمزنگاری: {Convert.ToBase64String(key)}", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}


// رمزگذاری فایل عکس با استفاده از الگوریتم AES
private void EncryptImageButton_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(filePathTextBox.Text))
{
MessageBox.Show("لطفا فایل عکس را انتخاب کنید.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


// باز کردن دیالوگ ذخیره فایل رمزگذاری شده
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// تولید کلید رمزنگاری
using (var aesAlg = Aes.Create())
{
aesAlg.GenerateKey();
key = aesAlg.Key;
}


// رمزگذاری فایل عکس و ذخیره در فایل جدید
using (var aesAlg = Aes.Create())
{
aesAlg.Key = key;
using (var cryptoStream = new CryptoStream(File.Create(saveFileDialog.FileName), aesAlg.CreateEncryptor(), CryptoStreamMode.Write))
{
using (var fileStream = File.OpenRead(filePathTextBox.Text))
{
fileStream.CopyTo(cryptoStream);
}
}
}


// نمایش پیام موفقیت‌آمیز بودن رمزگذاری و کلید رمزنگاری
MessageBox.Show($"فایل عکس با موفقیت رمزگذاری شد. کلید رمزنگاری: {Convert.ToBase64String(key)}", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}


// انتخاب فایل برای رمزگشایی
private void SelectEncryptedFileButton_Click(object sender, EventArgs e)
{
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
encryptedFilePathTextBox.Text = openFileDialog.FileName;
}
}


// رمزگشایی فایل ویدئویی با استفاده از الگوریتم AES و کلید رمزنگاری
private void DecryptVideoButton_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(encryptedFilePathTextBox.Tex t))
{
MessageBox.Show("لطفا فایل ویدئویی رمزگذاری شده را انتخاب کنید.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


if (key == null)
{
MessageBox.Show("لطفا کلید رمزنگاری را وارد کنید.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


// رمزگشایی فایل ویدئویی و ذخیره در فایل جدید
using (var aesAlg = Aes.Create())
{
aesAlg.Key = key;
using (var cryptoStream = new CryptoStream(File.Create(Path.Combine(Path.GetDire ctoryName(encryptedFilePathTextBox.Text), "DecryptedVideo.mp4")), aesAlg.CreateDecryptor(), CryptoStreamMode.Write))
{
using (var fileStream = File.OpenRead(encryptedFilePathTextBox.Text))
{
fileStream.CopyTo(cryptoStream);
}
}
}


// نمایش پیام موفقیت‌آمیز بودن رمزگشایی
MessageBox.Show("فایل ویدئویی با موفقیت رمزگشایی شد.", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
}


// رمزگشایی فایل عکس با استفاده از الگوریتم AES و کلید رمزنگاری
private void DecryptImageButton_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(encryptedFilePathTextBox.Tex t))
{
MessageBox.Show("لطفا فایل عکس رمزگذاری شده را انتخاب کنید.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


if (key == null)
{
MessageBox.Show("لطفا کلید رمزنگاری را وارد کنید.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}


// رمزگشایی فایل عکس و ذخیره در فایل جدید
using (var aesAlg = Aes.Create())
{
aesAlg.Key = key;
using (var cryptoStream = new CryptoStream(File.Create(Path.Combine(Path.GetDire ctoryName(encryptedFilePathTextBox.Text), "DecryptedImage.jpg")), aesAlg.CreateDecryptor(), CryptoStreamMode.Write))
{
using (var fileStream = File.OpenRead(encryptedFilePathTextBox.Text))
{
fileStream.CopyTo(cryptoStream);
}
}
}


// نمایش پیام موفقیت‌آمیز بودن رمزگشایی
MessageBox.Show("فایل عکس با موفقیت رمزگشایی شد.", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}

این یک کد کامل از رمز گذاری عکس و ویدئو

god of war 313
جمعه 29 اردیبهشت 1402, 21:52 عصر
خیلی ممنون.