c#公開鍵暗号化秘密鍵の復号と検証
5977 ワード
public partial class Form1 : Form {
private string Estring;
private string priKey;
private string pubKey;
public Form1()
{
InitializeComponent();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
priKey = rsa.ToXmlString(true);
pubKey = rsa.ToXmlString(false);
}
public static string RSAEncrypt(string publickey,string content) {
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] cipherbytes;
rsa.FromXmlString(publickey);
cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false);
return Convert.ToBase64String(cipherbytes);
}
public static string RSADecrypt(string privateKey, string content)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
byte[] cipherbytes;
rsa.FromXmlString(privateKey);
cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false);
return Encoding.UTF8.GetString(cipherbytes);
}
private void button1_Click(object sender, EventArgs e) {
Estring = RSAEncrypt(pubKey, "Hi Bob");
}
private void button2_Click(object sender, EventArgs e) {
string DString;
DString = RSADecrypt(priKey, Estring);
}
private void button3_Click(object sender, EventArgs e)
{
byte[] messagebytes = Encoding.UTF8.GetBytes("luo ");
RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();
string privatekey = oRSA.ToXmlString(true);
string publickey = oRSA.ToXmlString(false);
//
RSACryptoServiceProvider oRSA3 = new RSACryptoServiceProvider();
oRSA3.FromXmlString(privatekey);
byte[] AOutput = oRSA3.SignData(messagebytes, "SHA1");
//
RSACryptoServiceProvider oRSA4 = new RSACryptoServiceProvider();
oRSA4.FromXmlString(publickey);
bool bVerify = oRSA4.VerifyData(messagebytes, "SHA1", AOutput);
}
}