概要
cscの作法、調べてみた。
秘密鍵xmlファイルを読み込んで、平文を暗号化、復号してみた。
サンプルコード
using System;
using System.IO;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Text;
class test0 {
static void Main() {
string encryptWord = "hogehoge2";
var encByte = Encoding.Unicode.GetBytes(encryptWord);
Console.WriteLine("original: " + Encoding.Unicode.GetString(encByte));
var privateKey = File.ReadAllText("privatekey0.xml");
byte[] encryptedByte;
using (RSA encRsa = RSA.Create())
{
encRsa.FromXmlString(privateKey);
//encryptedByte = encRsa.Encrypt(encByte, RSAEncryptionPadding.Pkcs1);
encryptedByte = encRsa.Encrypt(encByte, RSAEncryptionPadding.OaepSHA1);
}
Console.WriteLine("encrypted: " + Convert.ToBase64String(encryptedByte));
byte[] decryptedByte;
using (RSA decRsa = RSA.Create())
{
decRsa.FromXmlString(privateKey);
//decryptedByte = decRsa.Decrypt(encryptedByte, RSAEncryptionPadding.Pkcs1);
decryptedByte = decRsa.Decrypt(encryptedByte, RSAEncryptionPadding.OaepSHA1);
}
var decryptedString = Encoding.Unicode.GetString(decryptedByte);
Console.WriteLine("Decrypt: " + decryptedString);
Console.WriteLine("ok");
}
}
実行結果
>ras1
original: hogehoge2
encrypted: jTADHI2k148RoYao7JyPRJ9rHanrbPskm1pHx9Vt6iTfVq5xfvzwmCzDKMvMgiRBS+7UONWo+fywnX4pjMYvBmRMQWJ0mpJOCCqRluSynqDUT5hWlMnZs9ozTyOnHYcO64Epu/R4TScUffa3ySifdpK8IsEbPp+Ae5npWgr6oL1Uhh9sMiamDRBxuXcn7X51TorUpgat/hWNwxe0XPh8eJqVedmQjsFVng7lapg5lbgPL04XRboVZMhupZeq+510b6hro3auotqoKQ/N7+eSdgz7Uh3+zBn9L3J5xmTqwCSCq0b/crg1egHqholFOWzbTD0xgSAgOEs9d0c498HCzK+i64Q3G1GTKZbxfNm6QYvzthYmAXJ5ed4LynTg3zYyn+1/jMUC5j2ZbI2DmNgTW3nGgwr2erRf2hA36hWT4PqBVtm8EqT/9CElf/8riY0Dkl/H0w58a0KG81U5kpsOJ2CQsIg2b9ltWZf9vmbYG5lkOyMXD4F4xjWc5PchmLIiH+bxdvO8Hmbej+fcOt8TsjZufuX8SzFMlMJJUyMhwbbhL+kG8Nd5X0lMPjw3uKmnYymxYXS2DLGFI2bzRpSlT8fTGqCk2FWg1X5q5dzmu5xJeZIZ1Ib6riWEq2mMIRE8HDFMAqnt0bwXqNoZ+GhqnGwpv1WzKYwubbQDHGzMirk=
Decrypt: hogehoge2
ok
以上。