Desproteger hoja de Excel con contraseña.

Trucos XP, Visual Basic 106 Comentarios »

¿Alguna vez has querido anular la contraseña de una hoja de Excel y no la recordabas?.

Bueno, este truco es muy antiguo pero no por ello menos efectivo. El resultado de aplicar este truco es la obtención de una contraseña valida para desproteger la hoja de excel. Al decir que es una contraseña valida quiero decir que no es la original pero nos permite desbloquearla igualmente.

El truco consiste en una rutina de programación que al ejecutarla (y esperar un rato mientras consigue la contraseña) nos muestra un mensaje con una contraseña válida.

Para ello, el código que pondré a continuación hay que ponerlo en un módulo de visual basic de la aplicación Excel. Lo puedes encontrar en el menú de Excel "Herramientas / Macro / Editor de Visual Basic" o bien pulsando (ALT+F11) para abrir el editor, pegamos el código, cerramos el editor.

Ahora seleccionamos la hoja que queremos desproteger y ejecutamos la macro "breakit" (ALT+F8 para seleccionarla). Tras la ejecución, un mensaje dará una contraseña equivalente, y la hoja ya estará desprotegida.

Visual Basic:
  1. Sub breakit()
  2.  
  3.    Dim i As Integer, j As Integer, k As Integer
  4.    Dim l As Integer, m As Integer, n As Integer
  5.  
  6.    On Error Resume Next
  7.      For i = 65 To 66
  8.       For j = 65 To 66
  9.        For k = 65 To 66
  10.         For l = 65 To 66
  11.          For m = 65 To 66
  12.           For i1 = 65 To 66
  13.            For i2 = 65 To 66
  14.             For i3 = 65 To 66
  15.              For i4 = 65 To 66
  16.               For i5 = 65 To 66
  17.                For i6 = 65 To 66
  18.                 For n = 32 To 126
  19.  
  20.    ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
  21.       Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
  22.       Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  23.  
  24.    If ActiveSheet.ProtectContents = False Then
  25.       MsgBox "Un password valido es " & Chr(i) & Chr(j) & _
  26.          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) _
  27.          & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  28.       Exit Sub
  29.    End If
  30.                Next
  31.               Next
  32.              Next
  33.             Next
  34.            Next
  35.           Next
  36.          Next
  37.         Next
  38.        Next
  39.       Next
  40.      Next
  41.     Next
  42.  
  43. End Sub

Encriptar una contraseña en visual basic.

Visual Basic 2 Comentarios »

Esta función te permite comprobar la contraseña de un usuario contra una base de datos sin necesidad de conocerla. El proceso inverso no es posible.

La función está basada en otras que he recopilado por internet y he adecuado a los sistemas de información de mi empresa. Es correcta y cumple la ley de protección de datos ya que el administrador no conocerá la contraseña del usuario y queda almacenada en formato ilegible.

Desde que este algoritmo fue público, los usuarios deben evitar el uso de palabras individuales como contraseñas, ya que un programa "cracker" podría iniciar un bucle a través de un diccionario ortográfico y aplicar esta función para tratar de coincidir con el valor hashed. Para mas seguridad los usuarios deberían utilizar por lo menos dos palabras, y tal vez utilizar dígitos y signos de puntuación en la contraseña. Ya sabéis que a los hackers hay que ponérselo lo mas difícil posible, estas recomendaciones se las hago a mis usuarios pero otra cosa es que me hagan caso, seguro que unos cuantos de ellos tienen el nombre del marido o del hijo como contraseña.

Su uso se hace enviándole el usuario y la contraseña a la función para que te devuelva el valor hash y se contrasta con el valor almacenado en la base de datos.

Función:

Function HashPassword(ByVal vsUserId As String, ByVal vsPassword As String) As Double

Const uHASH_DEPTH = 6
Static k(uHASH_DEPTH) As Integer
Dim S As String
Dim I As Integer
Dim J As Integer
Dim k1 As Integer
Dim N As Integer
Dim fHash As Double
Dim fTemp As Double

' Si la contraseña está en blanco,
' el valor de hash sigue siendo cero.
' Por lo tanto significa "sin contraseña".
fHash = 0#

If vsPassword <> "" Then
' Si incluyes el nombre del usuario como parte del hash,
' dos usuarios con la misma contraseña no tendrán el mismo
' valor de hash:
S = vsPassword & vsUserId
's = UCase$(s) ' Activa esta linea para convertir a mayúsculas
N = Len(S)

k(1) = Asc(Mid$(S, 1, 1))
For J = 2 To uHASH_DEPTH
k1 = 1 + (k(J - 1) Mod N)
k(J) = Asc(Mid$(S, k1, 1))

If k(J) = k(J - 1) Then

k(J) = k(J) + 1
End If
Next J

For I = 1 To N
fTemp = I
For J = 1 To uHASH_DEPTH
k1 = 1 + ((I + k(J)) Mod N)
fTemp = fTemp * Asc(Mid$(S, k1, 1))
Next J

fHash = fHash + fTemp
Next I
End If

HashPassword = fHash
End Function

Uso de la función en el programa:

En la siguiente linea se hace una comparación entre la cadena hash que se supone que tenemos almacenada en la base de datos y la que ha tecleado el usuario.

bPwdOk es un boleano que nos dice si coincide el hash que tenemos almacenado en nuestra base de datos con el que ha tecleado el usuario.

bPwdOk = (StrComp(tabla!Pwd, HashPassword(txtUsuario.Text, txtPwd.Text), vbTextCompare) = 0)

  • tabla!pwd : campo que hemos obtenido a través de un recordset de la base de datos en la que está almacenado el valor hash de la contraseña del usuario.
  • txtUsuario.text : valor de la caja de texto del UserId, en el caso del gráfico D-SUAREZ.
  • txtPwd.text : el valor de la caja de texto que contiene la contraseña que ha escrito el usuario.

Ponerle una contraseña a una tarjeta de memoria en Nokia N70

Nokia N70 6 Comentarios »

Ve a Menú > Herramientas > Memoria. Ve luego a Opciones > Establecer contraseña. Escribe una contraseña para la tarjeta y pulsa Aceptar. Si la tarjeta de memoria se inserta en otro dispositivo, se pedirá la contraseña para poder acceder a los datos de la tarjeta.

Para eliminar la contraseña

Ve a Herramientas > Memoria> Opciones > Quitar contraseña y escribe la contraseña. De este modo se elimina la contraseña y queda desbloqueada la tarjeta de memoria.

WP Theme & Icons originales por N.Design Studio.
Aviso Legal Entradas RSS Comentarios RSS Acceder