Question about Worksheet Security

G

Guest

Hi,

I don't understand why this code works...surely if I put a password on a
worksheet to protect it, then only that password should unprotect it...

what is wrong with this, is it a bug in Excel?

here is the code:
Sub PasswordBreaker()
'Author unknown
'Breaks worksheet password protection.
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
Dim lCount As Long

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)
Debug.Print Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Debug.Print lCount
Exit Sub
End If
lCount = lCount + 1
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub


thanks if anyone can explain this behaviour of Excel where it seems to not
in actual fact be secure at all...

Philip
 
T

Tom Ogilvy

The code determines an acceptable password and unprotects the sheet - same
as if you provided it. What is the mystery. This is called a brute force
attack. Excel's implementation of passwords for sheet and workbook level
are particularly weak.

Excel isn't designed to be secure. Password protection is to assist the
user in not making unintentional errors.

This is fairly common knowledge among most users of Excel. Welcome to the
group. <g>

Event the more robust file level protection and password protection of code
can all be broken with commercial password crackers.
 
E

Ed

Hmm - it came up with a totally nonsensical combination for me. Didn't at
all resemble the password I put in. But it worked. I need to keep this
handy for when I forget my protection password, or go on vacation and forget
to give it to someone who might need it (had that happen before).
Ed
 
T

Tom Ogilvy

If you check the link that Paul B posted, you will see an explanation of why
the nonsensical password works.

Paul's post wasn't visible to me when I posted, or I wouldn't have
duplicated the information offered -- as the link is better.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top