「C」の編集履歴(バックアップ)一覧はこちら
「C」(2014/07/22 (火) 17:05:15) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
AES+Base64で暗号化されたものを復号化する
namespace AESEncode
{
class Program
{
private const string ENCRYPT_KEY = @"1234567890123456";
private const string ENCRYPT_IV = @"abcdefghijklmnop";
static void Main(string[] args)
{
string src = "暗号化された文字列";
Console.WriteLine(AESEncode.Program.Decrypt(src));
}
/// <summary>
/// 文字列をAESで復号化
/// </summary>
public static string Decrypt(string text)
{
// AES暗号化サービスプロバイダ
AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
aes.BlockSize = 128;
aes.KeySize = 128;
aes.IV = Encoding.UTF8.GetBytes(ENCRYPT_IV);
aes.Key = Encoding.UTF8.GetBytes(ENCRYPT_KEY);
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7;
// Base64形式の文字列からバイト型配列に変換
byte[] src = System.Convert.FromBase64String(text);
// 複号化する
using (ICryptoTransform decrypt = aes.CreateDecryptor())
{
byte[] dest = decrypt.TransformFinalBlock(src, 0, src.Length);
//return Encoding.Unicode.GetString(dest);
return System.Text.Encoding.ASCII.GetString(dest);
}
}
}
}