กู้คืนรหัสผ่านป้องกันแผ่นงานใน Excel


14

ฉันมีสมุดงาน Excel

สองปีก่อนที่ฉันจะตั้งค่าตัวเลือกการป้องกันรหัสผ่านสำหรับหนึ่งแผ่น ตอนนี้ฉันลืมรหัสผ่าน มีวิธีกู้รหัสผ่านของแผ่นงาน Excel นั้นอีกหรือไม่

คำตอบ:


17

คุณไม่สามารถกู้คืนรหัสผ่านได้ แต่คุณสามารถป้องกันแผ่นงานได้ (ความยุ่งเหยิงที่ใช้ในการป้องกันแผ่นงานมีแนวโน้มที่จะเกิดการชนใน Excel รุ่นเก่าได้ค่อนข้างมาก

มีสคริปต์ที่จะบังคับให้เปิดแผ่นงานของคุณภายในระยะเวลาอันสั้น

ลองดูตัวอย่างที่นี่: http://www.theofficeexperts.com/VBASamples/Excel02.htm

นี่คือรหัส:

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 โซลูชันที่เป็นไปได้ วิธีอื่น ๆ รอบ ๆ .. เขียนโปรแกรมด้วย Apache POI และ Digester ผ่านไฟล์และคัดลอกโดยไม่ต้องแตะรหัสผ่าน (มีในบางวิธีก็เป็นไปได้)
user8885

2
+1 ทำงานได้อย่างมีเสน่ห์และได้รับการชนภายในไม่เกิน 10 วินาที
Johan - คืนสถานะโมนิก้า

ว้าว. ไม่น่าเชื่อว่ามีการชนกัน (เกือบ?) ภายใต้ 194,560 ครั้ง ฉันมีของฉันอยู่ที่ประมาณ 3,000 ครั้ง นั่นคือเอนโทรปีทั้งหมด 17 บิต!
jonallard

มีวิธีใดที่ไม่ใช่ vba? ฉันใช้ OSX และไฟล์ทั้งหมดได้รับการป้องกัน
จอนนี่

ฉันค่อนข้างมั่นใจว่าสิ่งนี้จะไม่ทำงานกับไฟล์ Excel ที่ป้องกันด้วย Excel 2013 และรุ่นที่ใหม่กว่าเนื่องจากระดับการเข้ารหัสที่เพิ่มขึ้น
Ƭᴇcʜιᴇ007
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.