C#でコンソールアプリケーションとして暗号化プログラムを実装するコード例を以下に示します。このコードは、指定されたプレーンテキストをAESで暗号化し、Base64エンコードされた結果を出力します。
必要なパッケージ
このプログラムを実行するためには、System.Security.Cryptography 名前空間を使用します。
プログラムコード
以下のコードを新しいC#コンソールプロジェクトに追加して実行してください。
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
class Program
{
private static readonly byte[] _aesIV = Convert.FromBase64String("YOUR_BASE64_ENCODED_AES_IV");
private static readonly byte[] _aesKey = Convert.FromBase64String("YOUR_BASE64_ENCODED_AES_KEY");
static async Task Main(string[] args)
{
// 新しいGUIDを生成
var key1 = Guid.NewGuid().ToString("N");
// 暗号化
var encryptKey1 = await EncryptAsync(key1);
// URLエンコード
var key2 = System.Net.WebUtility.HtmlEncode(encryptKey1);
key2 = key2.Replace("/", "%2F").Replace("+", "%2B");
// 結果を出力
Console.WriteLine($"Original Key: {key1}");
Console.WriteLine($"Encrypted Key: {encryptKey1}");
Console.WriteLine($"URL Encoded Encrypted Key: {key2}");
}
public static async Task<string> EncryptAsync(string plainText)
{
var src = Encoding.UTF8.GetBytes(plainText);
using (var am = new AesManaged())
using (var encryptor = am.CreateEncryptor(_aesKey, _aesIV))
using (var outStream = new MemoryStream())
{
using (var cs = new CryptoStream(outStream, encryptor, CryptoStreamMode.Write))
{
await cs.WriteAsync(src, 0, src.Length);
}
var result = outStream.ToArray();
return Convert.ToBase64String(result);
}
}
}
手順
Visual Studioのインストール
Visual Studioをインストールしていない場合は、こちらからインストールしてください。
新しいコンソールプロジェクトの作成
Visual Studioを開き、「新しいプロジェクトの作成」を選択します。
「コンソールアプリ (.NET Core)」を選択し、プロジェクトを作成します。
コードの貼り付け
プロジェクトが作成されたら、Program.csファイルを開き、上記のコードを貼り付けます。
YOUR_BASE64_ENCODED_AES_IV と YOUR_BASE64_ENCODED_AES_KEY を実際のBase64エンコードされたAES IVとキーに置き換えます。
プロジェクトの実行
プロジェクトをビルドし、実行します。
コンソールにオリジナルのキー、暗号化されたキー、URLエンコードされた暗号化キーが表示されます。
注意点
AESキーとIVはBase64エンコードされた文字列として保存されています。実際の運用環境では、これらを安全に管理してください。
暗号化処理にはSystem.Security.Cryptography名前空間のAesManagedクラスを使用しています。このクラスは、AES暗号化の標準的な実装を提供します。