Question

J'utilise un appel identique à & C; CryptUnprotectData " (exposé de Crypt32.dll) entre XP et Vista. Fonctionne bien sous XP. L'exception suivante apparaît lorsque j'exécute sous Vista:

"Decryption failed. Key not valid for use in specified state."

Comme prévu, les versions de crypt32.dll sont différentes entre XP et Vista (Windows XP ayant en fait la version la plus récente, probablement à la suite de SP3 ou d’une autre mise à jour).

Plus précisément, je crypte les données, les mets dans le registre, puis les lit et les décrypte à l'aide de "CryptUnprotectData". Le contrôle de compte d'utilisateur est désactivé.

Quelqu'un a déjà vu celui-ci auparavant?

Était-ce utile?

La solution

La documentation de la CryptUnprotectData indique qu'elle ne fonctionne généralement que lorsque l'utilisateur possède les mêmes informations d'identification de connexion que le crypteur.

Cela suggère que la clé est peut-être liée au jeton actuel de l'utilisateur. Puisque vous mentionnez Vista, cela me fait penser au contrôle de compte d'utilisateur et aux jetons restreints.

Pouvez-vous nous montrer du code? Pouvez-vous nous donner plus d’informations sur ce que vous faites avec les données - c’est-à-dire que vous les déplacez entre processus, utilisateurs ou ordinateurs?

Autres conseils

Nice. J'espère que c'est mon coup de tête de la semaine! ; -)

  

Cela me suggère que peut-être la clé   est lié au jeton actuel de l'utilisateur.

C'était ça. Il s'avère que j'utilisais des données chiffrées d'une autre machine (celle de XP) et tentais de déchiffrer sur la machine Vista.

Comme l'indique la documentation MSDN:

  

Habituellement, seul un utilisateur avec le même   informations d'identification d'ouverture de session que le crypteur peut   décrypter les données. De plus, le   le cryptage et le décryptage doivent être effectués   sur le même ordinateur.

Une fois que j'ai rechiffré les données sur la machine Vista, le déchiffrement fonctionne comme prévu.

Merci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top