Ripristina la password di protezione del foglio in Excel


14

Ho una cartella di lavoro di Excel.

Due anni prima ho impostato l'opzione di protezione con password per uno dei fogli. Ora ho dimenticato la password. C'è un modo per recuperare la password di quel foglio Excel?

Risposte:


17

Non è possibile recuperare la password, ma è possibile rimuovere la protezione del foglio (l'hash utilizzato per proteggere il foglio è piuttosto soggetto a collisioni nelle vecchie versioni di Excel, quindi generare una collisione è abbastanza veloce qui).

Ci sono script disponibili per forzare l'apertura del foglio in breve tempo.

Dai un'occhiata qui per esempio: http://www.theofficeexperts.com/VBASamples/Excel02.htm

Ecco il codice:

Sub PasswordBreaker()
  'Author unknown but submitted by brettdj of www.experts-exchange.com

  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 "One usable password is " & Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
   ActiveWorkbook.Sheets(1).Select
   Range("a1").FormulaR1C1 = 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

+1 possibile soluzione. Al contrario ... programma un'app con Apache POI e Digester. Ottenere attraverso il file e copiarlo senza toccare la password. (Sì, in qualche modo è possibile)
user8885

2
+1 Funziona come un incantesimo e subisce una collisione in meno di 10 secondi.
Johan - ripristina Monica il

Wow. Incredibile che le collisioni siano (quasi?) Certe sotto 194.560 tentativi. Ho avuto il mio alla 3000esima iterazione. Sono circa 17 bit di entropia totale!
jonallard

Qualche modo non-vba? Sono su OSX e l'intero file è protetto.
Jonny,

Sono abbastanza sicuro che non funzionerà su file Excel protetti con Excel 2013 e versioni successive, a causa dei livelli di crittografia aumentati.
Ƭᴇcʜιᴇ007,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.