加密过程涉及到四个对象:明文、StreamWriter、CryptoStream、MemoryStream
那么以上四个对象是如何联系起来的呢?
MemoryStream是尾,明文是头
整个加密过程完成后,暗文在MemoryStream中。
逆向理解下加密过程......
1、首先在内存中生存MemoryStream对象:
MemoryStream ms = new MemoryStream();
2、告诉CryptoStream,把加密后的字节流存储到MemoryStream中
上面的“存储”二字是一个动词,你可能会想到CryptoSteam中有个一个方法用以执行此过程
但是,并非如此
在你创建CryptoStream对象时,可以将MemoryStream对象"注册"到CryptoStream中
CryptoStream cs = new CryptoStream(ms,....); //...省略号表示后面还有些参数
3、告诉CryptoStream,要把明文写入到哪个流中
要加密一个明文,就要把明文写入到CryptoStream中
根据StreamWriter类的名字,就可以判断出