Estoy tratando de cifrar y descifrar algunos datos de archivos de texto usando el método ProtectedData.Protect de .NET. Me gustaría poder encriptar el texto (y guardarlo en un archivo) en una máquina y descifrar el texto en una máquina diferente. Las máquinas están ambas en el mismo dominio y ambas ejecutan el mismo servicio bajo el mismo nombre de usuario, así que pensé que usar DataProtectionScope.CurrentUser permitiría que cualquiera de los servicios encriptara y descifrara el archivo.El cifrado de DataProtectionScope.CurrentUser no parece funcionar en todas las máquinas
Cuando el servicio número dos intenta descifrar el archivo, arroja una "clave no válida para usar en el estado especificado". Otros sitios sugieren que este tipo de problema ocurre cuando la suplantación no se realiza correctamente, pero no hay suplantación. Ambos servicios se ejecutan bajo la misma cuenta de AD. Me parece que los servicios están usando diferentes claves para encriptar los datos, pero no sé por qué ocurriría esto, ya que se están ejecutando bajo la misma cuenta.
¿Alguien más ha encontrado este tipo de problema?
El código que estoy usando para cifrar y decypt es básicamente:
byte[] bytes = Encoding.Unicode.GetBytes(password);
byte[] protectedPassword = ProtectedData.Protect(bytes, null, DataProtectionScope.CurrentUser);
return Convert.ToBase64String(protectedPassword); //then I write this to a file
Gracias!
Esto podría explicar su situación: http://support.microsoft.com/kb/309408#4 – Toby
¿Son ambos corriendo bajo el mismo dominio * * cuenta, o son en cuentas locales que resulta tener el mismo nombre de usuario y contraseña? –