预备知识
.NET介绍
.NET是由微软设计和开发的独立于操作系统之上的平台,其类似于Java虚拟机,无论机器运行的是哪一种操作系统,只要这个系统上安装了.NET框架,就可以在上面运行.NET开发的应用程序。因此,理论上来说,.NET程序也可以运行于Linux环境下,实际上就有一个叫做MONO的开源项目,可以支持.NET程序在Linux下运行。
MSIL全称为Microsoft Intermediate Language,即微软中间语言,大多数时候简称为IL。.NET下有很多种高级语言如C#、VB.NET等,不管是哪一种语言,最终在编译后都生成IL。IL是.NET唯一能读懂的语言,也是唯一可执行的语言。大多数时候,对.NET程序进行分析和调试,就是对IL语言进行分析和跟踪。由于运行完全受.NET监控,因此IL属于托管代码,与之对应的是本机代码如x86汇编,被称为非托管代码。
AES加密算法
AES全称为Advanced Encryption Standard,即高级加密标准,在密码学中又称为Rijndael算法,是美国联邦政府采用的一种区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用,2006年,AES已然成为对称密钥加密中最流行的算法之一。
C#中的System.Security.Cryptography命名空间提供加密服务,包括安全的数据编码和解码,以及许多其他操作,例如散列法、随机数字生成和消息身份验证。使用System.Security.Cryptography可以方便的进行AES加解密运算。