Salt 值功能
基本提供程序创建 40 位 对称密钥 ,其中 1 个字节为零值 salt,如果指定了CRYPT_CREATE_SALT,则创建 11 个字节的非零盐,或者没有盐值。 但是,具有零值盐的 40 位对称密钥不等于没有盐的 40 位对称密钥。 为了实现互操作性,必须创建没有盐的密钥。 此问题是由默认条件导致,该条件仅使用恰好 40 位的键发生。 默认情况下 ,所有其他密钥长度 不分配盐。
基提供程序和扩展提供程序都可以使用 CRYPT_NO_SALT 标志来指定不为 40 位对称密钥分配盐值。 接受此标志的函数是 CryptGenKey、 CryptDeriveKey 和 CryptImportKey。 默认情况下,这些函数通过继续使用 11 字节长零值 salt,为 40 位对称密钥案例提供向后兼容性。