一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • C#でコンソールアプリケーションとして暗号化プログラムを実装する

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暗号化の標準的な実装を提供します。

 

 

 

 

 

 

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア