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.jb51.net/password/txt_encode
MD5 온라인 암호 화 도구:
http://tools.jb51.net/password/CreateMD5Password
온라인 해시/해시 알고리즘 암호 화 도구:
http://tools.jb51.net/password/hash_encrypt
온라인 MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160 암호 화 도구:
http://tools.jb51.net/password/hash_md5_sha
온라인 sha 1/sha 224/sha 256/sha 384/sha 512 암호 화 도구:
http://tools.jb51.net/password/sha_encode
더 많은 C\#관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,,,,,,,,,,,,,
본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.