C

「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);
            }
        }
    }
 }