ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Question about Worksheet Security (https://www.excelbanter.com/excel-programming/327000-re-question-about-worksheet-security.html)

Tom Ogilvy

Question about Worksheet Security
 
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.

--
Regards,
Tom Ogilvy

"Philip" wrote in message
...
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




Ed

Question about Worksheet Security
 
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

"Tom Ogilvy" wrote in message
...
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.

--
Regards,
Tom Ogilvy

"Philip" wrote in message
...
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






Tom Ogilvy

Question about Worksheet Security
 
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.

--
Regards,
Tom Ogilvy


"Ed" wrote in message
...
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

"Tom Ogilvy" wrote in message
...
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.

--
Regards,
Tom Ogilvy

"Philip" wrote in message
...
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









All times are GMT +1. The time now is 08:02 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com