솔트 값 지정
기본 공급자와 확장 공급자는 모두 사용할 솔트 값 의 값과 길이를 지정할 수 있습니다. 기본 공급자는 KP_SALT 매개 변수 값을 사용하여 솔트 값을 설정합니다. 기본 공급자는 항상 11바이트의 솔트 값을 설정합니다.
고급 공급자는 KP_SALT_EX 매개 변수 값이 지정되고 pbData 매개 변수가 솔트가 포함된 CRYPT_INTEGER_BLOB 구조를 가리키는 CryptSetKeyParam을 호출하여 솔트 값을 설정합니다.
참고
고급 공급자 대칭 키 와 해당 솔트 값의 총 길이는 128비트를 초과할 수 없습니다.
KP_SALT 기본 공급자와의 이전 버전과의 호환성을 위해 계속 제공됩니다. 최신 애플리케이션은 KP_SALT_EX 매개 변수 값을 사용해야 합니다.
다음 예제에서는 솔트 값을 설정합니다.
// Specify 4 bytes of salt.
BYTE rgbSalt[] = {0x01, 0x02, 0x03, 0x04};
CRYPT_DATA_BLOB sSaltData;
sSaltData.pbData = rgbSalt;
sSaltData.cbData = sizeof(rgbSalt);
// Set the 4 bytes of salt required.
// hKey is an HCRYPTPROV handle previously
// assigned, such as by CryptImportKey.
if (CryptSetKeyParam(
hKey,
KP_SALT_EX,
(BYTE*)&sSaltData,
0))
{
printf("The salt value is set.\n");
}
else
{
printf("Setting the salt value failed.\n");
}