Frage

Ich bin mit einem identischen Aufruf "CryptUnprotectData" (verfügbar über Crypt32.dll) zwischen XP und Vista.Works fine in XP.Ich bekomme die folgende Ausnahme, wenn ich in Vista:

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

Wie erwartet, sind die Versionen von crypt32.dll Unterschied zwischen XP und Vista, (w - /XP, tatsächlich mit den neueren, möglicherweise als Folge des SP3 oder andere update).

Genauer gesagt, ich bin die Verschlüsselung von Daten, indem es in das Registrierungs -, dann das Lesen und entschlüsseln von mit "CryptUnprotectData".Die UAC deaktiviert ist.

Wer diese einen gesehen?

War es hilfreich?

Lösung

Die CryptUnprotectData-Funktion die Dokumentation besagt, dass es in der Regel nur funktioniert, wenn der Benutzer die gleichen Anmeldeinformationen wie der encrypter.

Dies lässt mich vermuten, dass vielleicht der Schlüssel ist an der aktuellen token.Da Sie erwähnen, Vista, dies lässt mich denken die UAC und die eingeschränkten Token.

Können Sie uns zeigen Sie einige code?Können Sie geben uns mehr Informationen über das, was man mit den Daten macht-D. H.Sie ziehen es zwischen Prozessen oder Benutzern oder Computern?

Andere Tipps

Schön.Hoffentlich ist das meine Knochen Kopf bewegen der Woche!;-)

Dies lässt mich vermuten, dass vielleicht der Schlüssel, gebunden ist der Benutzer aktuelle token.

Das war es.Stellt sich heraus, ich war mit verschlüsselten Daten von einem anderen Computer (der XP-eins) und zu versuchen, zu entschlüsseln, auf dem Vista-Rechner.

Als die MSDN-Dokumentation besagt:

In der Regel, nur ein Benutzer mit dem gleichen Anmeldeinformationen als die encrypter können die Daten entschlüsseln.Darüber hinaus die Verschlüsselung und Entschlüsselung getan werden muss auf die gleiche computer.

Sobald ich wieder verschlüsselt die Daten auf dem Vista-Rechner, die Entschlüsselung funktioniert wie erwartet.

Vielen Dank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top