Created
April 14, 2014 17:11
-
-
Save YuukiTsuchida/10666269 to your computer and use it in GitHub Desktop.
C#でのAES暗号化 ECBモードとCBCモード
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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