国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現簡單的RSA非對稱加密算法示例

2020-01-24 00:32:52
字體:
來源:轉載
供稿:網友

本文實例講述了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);    }  }}

運行效果:

PS:關于加密解密感興趣的朋友還可以參考本站在線工具:

文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.VeVB.COm/password/txt_encode

MD5在線加密工具:
http://tools.VeVB.COm/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.VeVB.COm/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.VeVB.COm/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.VeVB.COm/password/sha_encode

更多關于C#相關內容還可查看本站專題:《C#加密與解密算法與技巧總結》、《C#窗體操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數據結構與算法教程》、《C#數組操作技巧總結》及《C#面向對象程序設計入門教程

希望本文所述對大家C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湛江市| 河北省| 万年县| 合江县| 娱乐| 信宜市| 阜平县| 葵青区| 海伦市| 汨罗市| 库车县| 朝阳市| 兰溪市| 建瓯市| 桦川县| 沿河| 元阳县| 承德市| 密山市| 曲水县| 岑巩县| 盖州市| 自贡市| 稷山县| 德州市| 思茅市| 凤台县| 大足县| 新营市| 昂仁县| 舟曲县| 杂多县| 伽师县| 清远市| 蒲江县| 德兴市| 台北县| 昌图县| 南陵县| 荣成市| 揭西县|