我在 XP 和 Vista 之间使用了对“CryptUnprotectData”(从 Crypt32.dll 公开)的相同调用。在 XP 中运行良好。在 Vista 中运行时出现以下异常:
"Decryption failed. Key not valid for use in specified state."
正如预期的那样,crypt32.dll 的版本在 XP 和 Vista 之间是不同的(w/XP 实际上有更新的版本,可能是 SP3 或其他一些更新的结果)。
更具体地说,我正在加密数据,将其放入注册表,然后使用“CryptUnprotectData”读取和解密。UAC 已关闭。
有人见过这个吗?