C#版非对称算法RSA简单代码示例

//界面控件
namespace RSA算法
{
    partial class Form1
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.StrBox = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.PubKeyBox = new System.Windows.Forms.TextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.PrvKeyBox = new System.Windows.Forms.TextBox();
            this.label3 = new System.Windows.Forms.Label();
            this.EncrypeBox = new System.Windows.Forms.TextBox();
            this.label4 = new System.Windows.Forms.Label();
            this.label5 = new System.Windows.Forms.Label();
            this.Str2Box = new System.Windows.Forms.TextBox();
            this.CrypeBtn = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // StrBox
            // 
            this.StrBox.Location = new System.Drawing.Point(115, 12);
            this.StrBox.Name = "StrBox";
            this.StrBox.Size = new System.Drawing.Size(258, 21);
            this.StrBox.TabIndex = 0;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(11, 18);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(77, 12);
            this.label1.TabIndex = 1;
            this.label1.Text = "加密前的明文";
            // 
            // PubKeyBox
            // 
            this.PubKeyBox.Location = new System.Drawing.Point(115, 78);
            this.PubKeyBox.Multiline = true;
            this.PubKeyBox.Name = "PubKeyBox";
            this.PubKeyBox.Size = new System.Drawing.Size(258, 74);
            this.PubKeyBox.TabIndex = 2;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(11, 87);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(29, 12);
            this.label2.TabIndex = 3;
            this.label2.Text = "公钥";
            // 
            // PrvKeyBox
            // 
            this.PrvKeyBox.Location = new System.Drawing.Point(115, 158);
            this.PrvKeyBox.Multiline = true;
            this.PrvKeyBox.Name = "PrvKeyBox";
            this.PrvKeyBox.Size = new System.Drawing.Size(258, 128);
            this.PrvKeyBox.TabIndex = 4;
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(13, 167);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(101, 12);
            this.label3.TabIndex = 5;
            this.label3.Text = "密钥(包含私钥)";
            // 
            // EncrypeBox
            // 
            this.EncrypeBox.Location = new System.Drawing.Point(115, 292);
            this.EncrypeBox.Name = "EncrypeBox";
            this.EncrypeBox.Size = new System.Drawing.Size(258, 21);
            this.EncrypeBox.TabIndex = 6;
            // 
            // label4
            // 
            this.label4.AutoSize = true;
            this.label4.Location = new System.Drawing.Point(14, 299);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(29, 12);
            this.label4.TabIndex = 7;
            this.label4.Text = "密文";
            // 
            // label5
            // 
            this.label5.AutoSize = true;
            this.label5.Location = new System.Drawing.Point(14, 329);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(77, 12);
            this.label5.TabIndex = 8;
            this.label5.Text = "解密后的明文";
            // 
            // Str2Box
            // 
            this.Str2Box.Location = new System.Drawing.Point(115, 320);
            this.Str2Box.Name = "Str2Box";
            this.Str2Box.Size = new System.Drawing.Size(258, 21);
            this.Str2Box.TabIndex = 9;
            // 
            // CrypeBtn
            // 
            this.CrypeBtn.Location = new System.Drawing.Point(117, 43);
            this.CrypeBtn.Name = "CrypeBtn";
            this.CrypeBtn.Size = new System.Drawing.Size(104, 23);
            this.CrypeBtn.TabIndex = 10;
            this.CrypeBtn.Text = "执行加密解密";
            this.CrypeBtn.UseVisualStyleBackColor = true;
            this.CrypeBtn.Click += new System.EventHandler(this.CrypeBtn_Click);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(385, 353);
            this.Controls.Add(this.CrypeBtn);
            this.Controls.Add(this.Str2Box);
            this.Controls.Add(this.label5);
            this.Controls.Add(this.label4);
            this.Controls.Add(this.EncrypeBox);
            this.Controls.Add(this.label3);
            this.Controls.Add(this.PrvKeyBox);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.PubKeyBox);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.StrBox);
            this.Name = "Form1";
            this.Text = "RSA非对称加密解密";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.TextBox StrBox;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.TextBox PubKeyBox;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.TextBox PrvKeyBox;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.TextBox EncrypeBox;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.Label label5;
        private System.Windows.Forms.TextBox Str2Box;
        private System.Windows.Forms.Button CrypeBtn;
    }
}

RSA代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Security.Cryptography;

namespace RSA算法
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void CrypeBtn_Click(object sender, EventArgs e)
        {
            //创建RSA加密算法服务提供者
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

            //显示公钥和私钥
            PubKeyBox.Text = RSA.ToXmlString(false);
            PrvKeyBox.Text = RSA.ToXmlString(true);

            //执行加密
            byte[] EncrypeBytes = RSA.Encrypt(Encoding.UTF8.GetBytes(StrBox.Text), true);
            EncrypeBox.Text = Encoding.UTF8.GetString(EncrypeBytes);

            //执行解密
            byte[] DecrypeBytes = RSA.Decrypt(EncrypeBytes, true);
            Str2Box.Text = Encoding.UTF8.GetString(DecrypeBytes);
        }
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值