加密文件的结构

【勇芳软件工作室】汉化HomePreviousNext

有多种加密文件和消息的标准格式。这些设计旨在使不同应用程序更容易进行通信。这些格式的解释超出了本文档的范围。有关其他阅读材料的列表,请参阅本指南开头的“相关文档”。

一旦文件或消息被加密,应用程序必须存储以下数据,通常将其捆绑在一起。这是数据:

* 【加密数据。】当使用块密码时,将数据填充到密码块大小的倍数。即使原始消息已经是偶数倍,通常也会添加填充。当使用流密码时,加密数据通常与原始明文大小相同。

* 【一个或多个密钥块,每个包含用于加密消息的会话密钥。】这些密钥块中的每一个都使用用户稍后解密数据的密钥交换公钥进行加密。请注意,如果密钥来源于密码,则不会存储这些密钥。相反,当它是解密消息的时候,从密码重建会话密钥。当然,用户必须记住密码本身。

* 【指定为数据的任何盐值都被加密。】当数据被解密时,必须使用与数据加密相同的方式指定这些值(使用CryptSetKeyParam函数)。

* 【被指定为数据的任何初始化向量都被加密。】这些值的处理方式与盐类似。

使用CryptSetKeyParam功能指定的消息正在加密的所有参数也必须指定为消息被解密。将这些参数中的一些与加密的消息一起存储也许是合适的。