C#版非对称算法RSA简单代码示例
2013-11-23 18:51
281 查看
//界面控件
////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);
}
}
}
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);
}
}
}
相关文章推荐
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- 测试HTTP服务器响应的vb简单代码示例
- C#摄像头实现拍照功能的简单代码示例
- js 判断js函数、变量是否存在的简单示例代码
- 深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始
- cJSON的简单应用——保存/解析 Shader 参数 【代码示例】
- Java实现判断浏览器版本与类型简单代码示例
- 简单生成遮罩层的代码示例
- javascript demo简单示例代码
- Python实现生成简单的Makefile文件代码示例
- C++和C#访问MySQL的简单代码示例
- 深入浅出学习Struts框架(一):一个简单mvc模式代码示例开始
- Android使用RSA加密和解密的示例代码
- JS比较两个时间大小的简单示例代码
- solr查询文档,简单查询 及 代码示例;
- 一段简单的php分页代码示例
- 深入了解ibatis源码----简单ibatis示例代码
- 简单linux线程示例代码
- Cocos2d-x简单Box2d代码示例|点击碰撞>HelloWorldScene.cpp<代码演示>
- JAVAEE中用Session简单实现购物车功能示例代码