public static Byte[] fromAES(String sPass, Byte[] bMessage) { // Key mat hPickman.AES_KEY_MAT oKeyMat = ComputeSha256KeyMat(sPass); // Encrypt using (Aes aes = Aes.Create()) { aes.Key = oKeyMat.bKey; aes.IV = oKeyMat.bIV; ICryptoTransform dec = aes.CreateDecryptor(aes.Key, aes.IV); using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new CryptoStream(ms, dec, CryptoStreamMode.Write)) { using (BinaryWriter sw = new BinaryWriter(cs)) { sw.Write(bMessage); } return(ms.ToArray()); } } } }
public static hPickman.AES_KEY_MAT ComputeSha256KeyMat(String sPass) { hPickman.AES_KEY_MAT oKeyMat = new hPickman.AES_KEY_MAT(); Encoding enc = Encoding.UTF8; SHA256 sha256 = new SHA256CryptoServiceProvider(); oKeyMat.bKey = sha256.ComputeHash(enc.GetBytes(sPass)); // Hash sPass reverse oKeyMat.bIV = sha256.ComputeHash(enc.GetBytes(new String(sPass.Reverse().ToArray()))); Array.Resize(ref oKeyMat.bIV, 16); return(oKeyMat); }