6. RSA公開金鑰密碼系統

感覺VB用的文字加密方法跟C#有出入?

using System.Text;
using System.Text.Encodings.Web;

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

        int mod(int a, int b, int c)
        {
            long s = 1;
            for (int i = (int)Math.Ceiling(Math.Log2(b)); i >= 0; i--)
            {
                s = s * s % c;
                if ((b >> i) % 2 == 1)
                {
                    s = a * s % c;
                }
            }
            return (int)s;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int key1 = int.Parse(textBox1.Text);
            int key2 = int.Parse(textBox2.Text);
            var txt = textBox3.Text;
            string k = "";
            foreach (var item in txt)
            {
                k += mod(item, key1, key2).ToString().PadLeft(5, '0') ;
            }
            textBox4.Text = k;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int key1 = int.Parse(textBox8.Text);
            int key2 = int.Parse(textBox7.Text);
            var input = textBox5.Text;
            string k = "";
            foreach (var item in input.Chunk(5).Select(e => int.Parse(string.Join("", e))))
            {
                k += (char)mod(item, key1, key2);
            }
            textBox6.Text = k;
        }
    }
}

Last updated