نمایش نتایج 1 تا 5 از 5

نام تاپیک: تحلیل کد

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    تحلیل کد

    با سلام
    از دوستان کسی میتونه منو در تحلیل این کد کمک کنه
    using System.Security.Cryptography;


    namespace WindowsFormsApplication9
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();

    }

    const int keySize = 1024;
    string publicAndPrivateKey;
    string publicKey;



    private void button1_Click(object sender, EventArgs e)
    {
    Form1.GenerateKeys(keySize, out publicKey, out publicAndPrivateKey);
    string text = txt_clear.Text;

    string encrypted = Form1.EncryptText(text, keySize, publicKey);
    string decrypted = Form1.DecryptText(encrypted, keySize, publicAndPrivateKey);
    txt_cipher.Text = encrypted;
    }


    private void button2_Click(object sender, EventArgs e)
    {
    Form1.GenerateKeys(keySize, out publicKey, out publicAndPrivateKey);
    string text = txt_clear.Text;
    // string text = "reza";
    string encrypted = Form1.EncryptText(text, keySize, publicKey);
    string decrypted = Form1.DecryptText(encrypted, keySize, publicAndPrivateKey);
    txt_plain.Text = decrypted;
    }



    private static bool _optimalAsymmetricEncryptionPadding = false;

    public static void GenerateKeys(int keySize, out string publicKey, out string publicAndPrivateKey)
    {
    using (var provider = new RSACryptoServiceProvider(keySize))
    {
    publicKey = provider.ToXmlString(false);
    publicAndPrivateKey = provider.ToXmlString(true);
    }
    }

    public static string EncryptText(string text, int keySize, string publicKeyXml)
    {
    var encrypted = Encrypt(Encoding.UTF8.GetBytes(text), keySize, publicKeyXml);
    return Convert.ToBase64String(encrypted);
    }

    public static byte[] Encrypt(byte[] data, int keySize, string publicKeyXml)
    {
    if (data == null || data.Length == 0) throw new ArgumentException("Data are empty", "data");
    int maxLength = GetMaxDataLength(keySize);
    if (data.Length > maxLength) throw new ArgumentException(String.Format("Maximum data length is {0}", maxLength), "data");
    if (!IsKeySizeValid(keySize)) throw new ArgumentException("Key size is not valid", "keySize");
    if (String.IsNullOrEmpty(publicKeyXml)) throw new ArgumentException("Key is null or empty", "publicKeyXml");

    using (var provider = new RSACryptoServiceProvider(keySize))
    {
    provider.FromXmlString(publicKeyXml);
    return provider.Encrypt(data, _optimalAsymmetricEncryptionPadding);
    }
    }

    public static string DecryptText(string text, int keySize, string publicAndPrivateKeyXml)
    {
    var decrypted = Decrypt(Convert.FromBase64String(text), keySize, publicAndPrivateKeyXml);
    return Encoding.UTF8.GetString(decrypted);
    }

    public static byte[] Decrypt(byte[] data, int keySize, string publicAndPrivateKeyXml)
    {
    if (data == null || data.Length == 0) throw new ArgumentException("Data are empty", "data");
    if (!IsKeySizeValid(keySize)) throw new ArgumentException("Key size is not valid", "keySize");
    if (String.IsNullOrEmpty(publicAndPrivateKeyXml)) throw new ArgumentException("Key is null or empty", "publicAndPrivateKeyXml");

    using (var provider = new RSACryptoServiceProvider(keySize))
    {
    provider.FromXmlString(publicAndPrivateKeyXml);
    return provider.Decrypt(data, _optimalAsymmetricEncryptionPadding);
    }
    }

    public static int GetMaxDataLength(int keySize)
    {
    if (_optimalAsymmetricEncryptionPadding)
    {
    return ((keySize - 384) / 8) + 7;
    }
    return ((keySize - 384) / 8) + 37;
    }

    public static bool IsKeySizeValid(int keySize)
    {
    return keySize >= 384 &&
    keySize <= 16384 &&
    keySize % 8 == 0;
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button3_Click(object sender, EventArgs e)
    {
    Application.Exit();
    }




    }
    }

    آخرین ویرایش به وسیله Reza,M : سه شنبه 04 آذر 1393 در 22:02 عصر

تاپیک های مشابه

  1. کمک در تحلیل برنامه
    نوشته شده توسط sahra_777 در بخش تحلیل و طراحی نرم افزار
    پاسخ: 1
    آخرین پست: یک شنبه 02 مرداد 1384, 18:32 عصر
  2. تحلیل یک دیتابیس اکسس2000
    نوشته شده توسط VBCODEMAN در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 1
    آخرین پست: شنبه 31 مرداد 1383, 12:05 عصر
  3. تحلیل مقدماتی الگوریتمها
    نوشته شده توسط Kambiz در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 3
    آخرین پست: یک شنبه 23 شهریور 1382, 16:19 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •