Rimuovi la password da un documento Excel


11

Sto fornendo supporto interno e uno dei nostri utenti è riuscito a mettere una password su un file Excel per errore, ho fatto i controlli adeguati per assicurarmi che l'utente dovrebbe avere accesso al documento e ora voglio sapere cosa raccomandazione per la rimozione di una password da un documento Excel.

Per quello che vale, la password appare dopo l'apertura di Excel ma prima di poter vedere tutti i dati in Excel.


Uhm, sei un po 'pieno. A meno che tu non voglia fare cose complicate sulla crittografia ... (Non sono a conoscenza di programmi per farlo su .xls). Non esiste un modo normale e automatizzato di eseguire questa operazione in Excel - questo potrebbe in qualche modo sconfiggere il punto di avere una password in primo luogo ... la tua unica speranza sarebbe un programma di cracking di cifratura speciale per tali file (che potrebbe essere difficile da trova). Forse Google decrypt xlso qualcosa di simile.
Samuel Jaeschke,

il file exx .xlsx è in realtà solo un file zip. decomprimere e seguire istruzioni come queste. ho provato in passato non sono sicuro se funziona se l'intero file è protetto da password. nileshkumar83.blogspot.com/2012/05/…
Joop

1
@SamuelJaeschke Il metodo hook su stackoverflow.com/a/27508116/5757159 funziona sempre. Nessun cracking richiesto.
ThunderFrame,

Risposte:


11

Elcomsoft crea un programma piuttosto utile chiamato Advanced Office Password Recovery che può fare il lavoro meglio di qualsiasi altra cosa abbia usato.

Probabilmente vale la pena dare un valore ai dati che stai cercando di recuperare prima di tentare questo, a volte è meno costoso consentire all'utente di ricreare il documento da zero (e insegna loro una lezione preziosa ;-)). AOPR non è gratuito e le password a volte possono essere elaborate solo con la forza bruta (provando ogni possibile combinazione di lettere) che può richiedere molto tempo.


I programmi di Elmcomsoft sono buoni, in passato ho avuto successo con questo per l'apertura di un file Excel che mi è stato inviato senza password. Ottieni un elenco di parole decente e provalo prima (quello incluso in Caino e Abele è un bel 3 MB). Se fallisce, prova la forza bruta, ma se si tratta di una password complessa, non
entrerai

Non sono un fan di raccomandare software commerciale su questo sito, ma in questo caso è di gran lunga la scelta migliore. Consigliato. +1.
agtoever,

1

È qualcosa di simile, il componente aggiuntivo XLA Excel Password Remover , che cosa stai cercando?

EDIT: Pensandoci, forse no - questo è usato per rimuovere la password da fogli di lavoro / cartelle di lavoro protetti.


se eticamente possiamo risolvere usando questo strumento?
Joe,

1

Se sai qual è la password, vai avanti e apri il documento Excel. Quindi fare clic su File> Salva con nome. A sinistra del pulsante Salva è presente un piccolo menu a discesa con l'etichetta Strumenti. Fare clic su quello, quindi fare clic su Opzioni generali. Elimina qui le voci della password e fai clic su OK. Salva il documento.

Se non si conosce la password, è possibile utilizzare VBA per trovarla. Se dovessi provare a indovinare, il tuo utente probabilmente non ha usato una password super forte, quindi potremmo usare un metodo di tipo di forza bruta per trovarlo. Il codice seguente è approssimativo, ma mi ha aiutato a trovare una password debole e persa su molti documenti dei miei utenti. Controlla le password di qualsiasi lunghezza con i caratteri ASCII da 1 a z. Lo chiameresti dalla finestra immediata e aspetteresti alcuni minuti in questo modo:

? GetPassword("D:\mywkbk.xlsx")

-

Public Function GetPassword(ByRef sFileName As String) As String
On Error Resume Next
    Dim pw As String
    pw = ""
    Do
        VBA.Err.Clear
        pw = GenerateNextPassword(pw)            
        Application.Workbooks.Open sFileName, False, True, , pw, pw
        VBA.DoEvents
    Loop While VBA.Err.Number = 5408
    GetPassword = pw
End Function

Public Function GenerateNextPassword(ByRef sCurrentPassword As String) As String
    Const MAX_CHAR = 122
    Const MIN_CHAR = 49

    Dim sCurrentPasswordMax As String
    Dim sNewPassword As String
    Dim i As Long

    sCurrentPasswordMax = String(Len(sCurrentPassword), Chr(MAX_CHAR))
    If sCurrentPassword = sCurrentPasswordMax Then
        'do an increment that changes the length
        sNewPassword = String(Len(sCurrentPassword) + 1, Chr(MIN_CHAR))
        Debug.Print Now(); ": "; sNewPassword
    ElseIf Asc(Right(sCurrentPassword, 1)) = MAX_CHAR Then
        'do an increment that changes multiple characters
        sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(MIN_CHAR)
        For i = Len(sCurrentPassword) - 1 To 1 Step -1
            sNewPassword = Left(sNewPassword, i - 1) & Chr(Asc(Mid(sNewPassword, i, 1)) + 1) & Mid(sNewPassword, i + 1)
            If Asc(Mid(sCurrentPassword, i, 1)) <> MAX_CHAR Then
                Exit For
            End If
        Next i
    Else
        'do an increment on the rightmost character
        sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(Asc(Right(sCurrentPassword, 1)) + 1)
    End If

    GenerateNextPassword = sNewPassword
End Function

È implicito che la password è stata persa e dimenticata, quindi il tuo primo paragrafo è irrilevante. Se trovi la tua routine VBA per rimuovere una password sconosciuta, faccelo sapere, ma sospetto che sia impossibile.
Scott,

1
Dopo aver riletto il PO, direi con forza che non è chiaro che la password sia andata persa, quindi mantengo lì il primo paragrafo. Ho aggiornato la risposta con un codice VBA che potrebbe essere utilizzato per trovare la password entro qualche minuto o più se la password non è nota.
Bobort,

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.