C# Blowfishによる暗号化

Blowfishとはライセンスフリーな暗号化方式としてSSHやファイル暗号化ソフトウェアなどに広く利用されています。

.NET FrameWork では標準では使用できませんが、Blowfishのサイトに色々な言語でのソースが公開されていますので、簡単に使用することができます。

Blowfish Source Code

[C# by FireXware]のリンクからソースをダウンロードします。使い方はこのコードのサンプルにもありますが下記のように簡単に使用することができます。

Encoding encoding = System.Text.Encoding.ASCII;
 
// 暗号化キー
byte[] cipherKey = encoding.GetBytes("C!pherKey");
 
// BlowFishクラスのインスタンス生成
BlowFish blowFish = new BlowFish(cipherKey);
 
string plainText = "The quick brown fox jumped over the lazy dog.";
string cipherText = blowFish.Encrypt_CBC(plainText);
 
Console.WriteLine("cipher : {0}", cipherText);
// cipher : 3be454a5eb8fc67b06145fb28354b5b24774b581b2532e33b6a0ec7c6a8e26d18ba739668d80f8fdcae62cc90af1779deb71918f94c8edcb
 
string decryptText = blowFish.Decrypt_CBC(cipherText);
Console.WriteLine("decrypt : {0}", decryptText);
// decrypt : The quick brown fox jumped over the lazy dog.

※ソースコードをダウンロードしてビルドすると「エラー 3 名前 'B' は現在のコンテキスト内に存在しません。 」が表示される場合、ビルドエラーになっているB→b(小文字)に変換することでビルドできるようになります。

使用環境: Visual Studio 2015 .NET Framework 4.5

C# メニューリスト