Skip to content

Instantly share code, notes, and snippets.

@YuukiTsuchida
Created April 14, 2014 17:11
Show Gist options
  • Save YuukiTsuchida/10666269 to your computer and use it in GitHub Desktop.
Save YuukiTsuchida/10666269 to your computer and use it in GitHub Desktop.
C#でのAES暗号化 ECBモードとCBCモード
using System.IO;
using System.Collections;
using System.Security.Cryptography;
public class Crypt
{
private const string AesIV = @"8863d67c62113fb8";
private const string AesKey = @"2eeee02d3dc3ef6c";
public string EnCrypt( string text )
{
RijndaelManaged aes = new RijndaelManaged();
aes.BlockSize = 128;
aes.KeySize = 128;
aes.Padding = PaddingMode.Zeros;
aes.Mode = CipherMode.ECB;
// aes.Mode = CipherMode.CBC; // CBCモードを利用する場合は設定をこちらに
aes.Key = System.Text.Encoding.UTF8.GetBytes( AesKey );
// CBCモードを利用する場合はIVの設定を行う
// aes.IV = System.Text.Encoding.UTF8.GetBytes( AesIV );
ICryptoTransform encrypt = aes.CreateEncryptor();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptStream = new CryptoStream( memoryStream, encrypt, CryptoStreamMode.Write );
byte[] text_bytes = System.Text.Encoding.UTF8.GetBytes( text );
cryptStream.Write( text_bytes, 0, text_bytes.Length );
cryptStream.FlushFinalBlock();
byte[] encrypted = memoryStream.ToArray();
Debug.Log( "byte :" + encrypted[0] );
return ( System.Convert.ToBase64String( encrypted ) );
}
public string Decrypt( string cryptText )
{
RijndaelManaged aes = new RijndaelManaged();
aes.BlockSize = 128;
aes.KeySize = 128;
aes.Padding = PaddingMode.Zeros;
aes.Mode = CipherMode.ECB;
// aes.Mode = CipherMode.CBC; // CBCモードを利用する場合は設定をこちらに
aes.Key = System.Text.Encoding.UTF8.GetBytes( AesKey );
// CBCモードを利用する場合はIVの設定を行う
// aes.IV = System.Text.Encoding.UTF8.GetBytes( AesIV );
ICryptoTransform decryptor = aes.CreateDecryptor();
byte[] encrypted = System.Convert.FromBase64String( cryptText );
byte[] planeText = new byte[encrypted.Length];
MemoryStream memoryStream = new MemoryStream( encrypted );
CryptoStream cryptStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read);
cryptStream.Read(planeText, 0, planeText.Length);
return ( System.Text.Encoding.UTF8.GetString( planeText ) );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment