¿alguien sabe si es posible acceder a una hoja protegira con contraseña para desprotegerla?
me refiero a si es posible acceder sin conocer la contraseña porque la haya olvidado.
//-->
¿alguien sabe si es posible acceder a una hoja protegira con contraseña para desprotegerla?
me refiero a si es posible acceder sin conocer la contraseña porque la haya olvidado.
no recuerdo donde lei que la contraseña con que se protege la hoja tiene un cifrado que no es biunívoco, que la contraseña se cifra para no guardarla como tal en el archivo, con la peculiaridad de que la contraseña cifrada siempre tiene la misma longitud.
Entonces no es posible saber cuál era la contraseña utilizada, pero sí es posible encontrar una combinación de caracteres que Excel interprete como la contraseña correcta. Un lío, pero que demuesrta una vez más que Excel no se caracteriza por ser un sistema seguro.
A lo que iba, puedes encontrar en Google muchas copias de la misma macro, y en ninguna se cita la fuente original, para poder desproteger una hoja de un libro cuando el libro ya está abierto.
Aquí vuelvo a reproducir la macro, aunque me he tomado la libertad de traducir al español el mensaje resultante.
Sub WorksheetPasswordBreaker()
' Author unknown but submitted by brettdj of www.experts-exchange.com
' descargado de http://www.theofficeexperts.com/VBASamples/Excel02.htm
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "Una contraseña válida es " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
------
Ya sé Excel, pero necesito más.
Muchas gracias.
Tarda un poco en encontrar la contraseña, pero al final da con ella.
mi cabeza es un mar de dudas
Gracias Paco. Pero yo no puedo abrir el libro, ¿entonces donde coloco o ejecuto la macro? ¿cómo funciono con ella?
Si no te deja abrirlo, puedes intentar en primer lugar preguntarle a quien hizo la hoja a ver si te dice la contraseña. Seguramente si la puso fue por algún motivo.
Si no lo localizas o si olvidó la contraseña, entonces necesitas una herramienta específica, que depende de la versión del archivo, porque el sistema de protección de Excel ha cambiado a lo largo del tiempo.
Si tu archivo es formato xls, estás de suerte, la mayoría de las herramientas de recuperación funcionan con esta versión y encuentran la contraseña rápido, por ejemplo Excel password Recovery
Si tu archivo protegido es formato 2007 o posterior (.xlsx, .xlsm, ...), no tanta suerte, pero también hay herramientas como esta https://www.recoverlostpassword.com/products/excelpasswordrecovery.html o esta otra https://www.passware.com/excel/ que en general utilizan sistemas de fuerza bruta para encontrar una clave, es decir, empiezan a probar combinaciones de letras hasta dar con una que funcione, así que suele tardar en encontrarla.
------
Ya sé Excel, pero necesito más.