Skip to content

Instantly share code, notes, and snippets.

@TsuyoshiUshio
Created April 4, 2025 05:03
Show Gist options
  • Save TsuyoshiUshio/c299d7e7de27b2bae466bee7c9a6cc1b to your computer and use it in GitHub Desktop.
Save TsuyoshiUshio/c299d7e7de27b2bae466bee7c9a6cc1b to your computer and use it in GitHub Desktop.
Microsoft 50th
using System.Security.Cryptography;
using System.Text;
namespace MS50
{
public class AesEncryption
{
public static string EncryptString(string plainText, string key)
{
byte[] iv;
byte[] encrypted;
using (Aes aes = Aes.Create())
{
aes.Key = Encoding.UTF8.GetBytes(key);
aes.GenerateIV();
iv = aes.IV;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(plainText);
}
encrypted = ms.ToArray();
}
}
}
byte[] combinedData = new byte[iv.Length + encrypted.Length];
Array.Copy(iv, 0, combinedData, 0, iv.Length);
Array.Copy(encrypted, 0, combinedData, iv.Length, encrypted.Length);
return Convert.ToBase64String(combinedData);
}
public static string DecryptString(string cipherText, string key)
{
byte[] combinedData = Convert.FromBase64String(cipherText);
byte[] iv = new byte[16];
byte[] cipher = new byte[combinedData.Length - iv.Length];
Array.Copy(combinedData, 0, iv, 0, iv.Length);
Array.Copy(combinedData, iv.Length, cipher, 0, cipher.Length);
using (Aes aes = Aes.Create())
{
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = iv;
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
using (MemoryStream ms = new MemoryStream(cipher))
{
using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
}
}
}
}
}
namespace MS50
{
using System;
class Program
{
static void Main()
{
var ascii = "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";
Console.WriteLine(AesEncryption.DecryptString(ascii, " AzureFunctions "));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment