Hapus kata sandi dari Dokumen Excel

11

Saya memberikan dukungan internal dan salah satu pengguna kami berhasil membuat kata sandi pada file excel secara tidak sengaja, saya telah melakukan pemeriksaan yang tepat untuk memastikan bahwa pengguna harus memiliki akses ke dokumen dan sekarang ingin tahu apa yang rekomendasi untuk menghapus kata sandi dari dokumen Excel.

Untuk apa nilainya, kata sandi muncul setelah Excel dibuka tetapi sebelum Anda dapat melihat data apa pun di excel.

joe
sumber
Um, kamu agak kenyang. Kecuali Anda ingin melakukan hal-hal kriptografi yang rumit ... (Saya tidak mengetahui ada program untuk melakukan ini di .xls). Tidak ada cara normal dan otomatis untuk melakukan ini di Excel - yang akan mengalahkan titik memiliki kata sandi di tempat pertama ... satu-satunya harapan Anda adalah program cracking cipher khusus untuk file seperti itu (yang mungkin sulit untuk Temukan). Mungkin Google decrypt xlsatau yang serupa.
Samuel Jaeschke
file excel .xlsx sebenarnya hanya file zip. unzip dan ikuti instruksi seperti ini. telah mencoba di masa lalu tidak yakin apakah itu berfungsi jika seluruh file dilindungi kata sandi. nileshkumar83.blogspot.com/2012/05/...
Joop
1
@SamuelJaeschke Metode hook di stackoverflow.com/a/27508116/5757159 berfungsi setiap saat. Tidak perlu retak.
ThunderFrame

Jawaban:

11

Elcomsoft membuat program yang sangat berguna yang disebut Advanced Office Password Recovery yang dapat melakukan pekerjaan dengan lebih baik daripada yang pernah saya gunakan.

Mungkin bernilai memberi nilai pada data yang Anda coba pulihkan sebelum mencoba ini, terkadang lebih murah untuk membiarkan pengguna membuat ulang dokumen dari awal (dan memberi mereka pelajaran berharga ;-)). AOPR tidak gratis, dan kata sandi terkadang hanya dapat dikerjakan dengan kasar (mencoba setiap kombinasi huruf yang mungkin) yang dapat memakan waktu sangat lama.

Mike1980
sumber
Program Elmcomsoft bagus, saya pernah sukses dengan ini di masa lalu untuk membuka file Excel saya dikirim tanpa kata sandi. Dapatkan daftar kata yang layak, dan coba dulu (yang termasuk dalam Kain dan Habel adalah 3MB yang bagus). Jika itu gagal, cobalah brute force, tetapi jika itu adalah kata sandi yang kuat, Anda tidak akan pernah masuk.
Dentrasi
Saya bukan penggemar merekomendasikan perangkat lunak komersial di situs ini, tetapi dalam hal ini sejauh ini pilihan terbaik. Direkomendasikan. +1.
agtoever
1

Apakah sesuatu seperti ini, add-in Excel Password Remover XLA, apa yang Anda cari?

EDIT: Kalau dipikir-pikir, mungkin tidak - ini digunakan untuk menghapus kata sandi dari lembar kerja / workbook yang dilindungi.

Bonus
sumber
apakah secara etis kita bisa menyelesaikannya dengan menggunakan alat ini?
joe
1

Jika Anda tahu kata sandi itu, silakan dan buka dokumen Excel. Kemudian klik File> Save As. Di sebelah kiri tombol Simpan ada sedikit drop-down berlabel Alat. Klik itu, dan kemudian klik Opsi Umum. Hapus entri kata sandi di sana, dan klik OK. Simpan dokumen.

Jika Anda tidak tahu apa kata sandinya, Anda dapat menggunakan VBA untuk menemukannya. Jika saya harus menebak, pengguna Anda mungkin tidak menggunakan kata sandi yang sangat kuat, jadi kami bisa menggunakan metode brute force type untuk menemukannya. Kode di bawah ini kasar, tetapi telah membantu saya menemukan kata sandi yang lemah dan hilang pada beberapa dokumen pengguna saya. Ia memeriksa kata sandi dengan karakter ASCII mulai dari 1 hingga z. Anda akan memanggilnya dari Jendela Segera dan tunggu beberapa menit seperti ini:

? 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
Bobort
sumber
Tersirat bahwa kata sandi telah hilang dan dilupakan, sehingga paragraf pertama Anda tidak relevan. Jika Anda menemukan rutin VBA Anda untuk menghapus kata sandi yang tidak dikenal, beri tahu kami, tetapi saya menduga itu tidak mungkin.
Scott
1
Setelah membaca ulang OP, saya akan sangat berpendapat bahwa tidak jelas bahwa kata sandi telah hilang, jadi saya menyimpan paragraf pertama di sana. Saya memang memperbarui jawaban dengan beberapa kode VBA yang dapat digunakan untuk menemukan kata sandi dalam beberapa menit atau lebih lama jika kata sandi tidak dikenal.
Bobort
0

Pendekatan Hook yang ditunjukkan dalam artikel SO ini berfungsi SETIAP kali.

/programming//a/27508116/5757159

Tidak ada Hex editor, tidak ada unduhan, tidak ada installer. Hanya solusi VBA murni.

ThunderFrame
sumber