Salt Value の機能

基本プロバイダーは、11 バイトのゼロ値 salt、CRYPT_CREATE_SALTが指定されている場合は 11 バイトの 0 以外の salt、または salt 値なしで作成された 40 ビット対称キーを作成します。 ただし、0 値の salt を持つ 40 ビット対称キーは、salt のない 40 ビット対称キーと同等ではありません。 相互運用性を実現するには、キーをソルトなしで作成する必要があります。 この問題は、40 ビットのキーでのみ発生する既定の条件に起因します。 他のすべての キー長には、 既定で割り当てられたソルトがありません。

基本プロバイダーと拡張プロバイダーの両方で、CRYPT_NO_SALT フラグを使用して、40 ビット対称キーにソルト値が割り当てられていないことを指定できます。 このフラグを受け入れる関数は、 CryptGenKeyCryptDeriveKeyおよび CryptImportKey です。 既定では、これらの関数は、11 バイト長のゼロ値 salt を引き続き使用することで、40 ビット対称キー ケースの下位互換性を提供します。