Python Password Brute-Forcer
up vote
1
down vote
favorite
I'm working on a password brute-forcer that takes in a password from the user and brute-forces solutions until it finds a match. I was wondering if there is any way to improve performance or readability?
import itertools
import time
Alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXiuYZ1234567890-_.")
Password = input("What is your password?n")
start = time.time()
counter = 1
CharLength = 1
for CharLength in range(25):
passwords = (itertools.product(Alphabet, repeat = CharLength))
print("n")
print("Currently working on passwords with ", CharLength, " characters.")
print("We are currently at ", (counter / (time.time() - start)), "attempts per second.")
print("It has been ", time.time() - start, " seconds.")
print("We have tried ", counter, " possible passwords.")
for i in passwords:
counter += 1
i = str(i)
i = i.replace("[", "")
i = i.replace("]", "")
i = i.replace("'", "")
i = i.replace(" ", "")
i = i.replace(",", "")
i = i.replace("(", "")
i = i.replace(")", "")
if i == Password:
end = time.time()
timetaken = end - start
print("nPassword found in ", timetaken, " seconds and ", counter, "attempts.")
print("That is ", counter / timetaken, " attempts per second.")
print("nThe password is "%s"." % i)
input("nPress enter when you have finished.")
exit()
Thanks.
python
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
up vote
1
down vote
favorite
I'm working on a password brute-forcer that takes in a password from the user and brute-forces solutions until it finds a match. I was wondering if there is any way to improve performance or readability?
import itertools
import time
Alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXiuYZ1234567890-_.")
Password = input("What is your password?n")
start = time.time()
counter = 1
CharLength = 1
for CharLength in range(25):
passwords = (itertools.product(Alphabet, repeat = CharLength))
print("n")
print("Currently working on passwords with ", CharLength, " characters.")
print("We are currently at ", (counter / (time.time() - start)), "attempts per second.")
print("It has been ", time.time() - start, " seconds.")
print("We have tried ", counter, " possible passwords.")
for i in passwords:
counter += 1
i = str(i)
i = i.replace("[", "")
i = i.replace("]", "")
i = i.replace("'", "")
i = i.replace(" ", "")
i = i.replace(",", "")
i = i.replace("(", "")
i = i.replace(")", "")
if i == Password:
end = time.time()
timetaken = end - start
print("nPassword found in ", timetaken, " seconds and ", counter, "attempts.")
print("That is ", counter / timetaken, " attempts per second.")
print("nThe password is "%s"." % i)
input("nPress enter when you have finished.")
exit()
Thanks.
python
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
What would this code be used for? It asks for the plain text password, not a hash, and just iterates over all possible strings of length 0 through 24 until it matches what it already knows.
– l0b0
Oct 15 at 3:02
@l0b0 I'll later implement some sort of web form functionality.
– Michael O'Connell
Oct 20 at 19:04
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I'm working on a password brute-forcer that takes in a password from the user and brute-forces solutions until it finds a match. I was wondering if there is any way to improve performance or readability?
import itertools
import time
Alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXiuYZ1234567890-_.")
Password = input("What is your password?n")
start = time.time()
counter = 1
CharLength = 1
for CharLength in range(25):
passwords = (itertools.product(Alphabet, repeat = CharLength))
print("n")
print("Currently working on passwords with ", CharLength, " characters.")
print("We are currently at ", (counter / (time.time() - start)), "attempts per second.")
print("It has been ", time.time() - start, " seconds.")
print("We have tried ", counter, " possible passwords.")
for i in passwords:
counter += 1
i = str(i)
i = i.replace("[", "")
i = i.replace("]", "")
i = i.replace("'", "")
i = i.replace(" ", "")
i = i.replace(",", "")
i = i.replace("(", "")
i = i.replace(")", "")
if i == Password:
end = time.time()
timetaken = end - start
print("nPassword found in ", timetaken, " seconds and ", counter, "attempts.")
print("That is ", counter / timetaken, " attempts per second.")
print("nThe password is "%s"." % i)
input("nPress enter when you have finished.")
exit()
Thanks.
python
I'm working on a password brute-forcer that takes in a password from the user and brute-forces solutions until it finds a match. I was wondering if there is any way to improve performance or readability?
import itertools
import time
Alphabet = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXiuYZ1234567890-_.")
Password = input("What is your password?n")
start = time.time()
counter = 1
CharLength = 1
for CharLength in range(25):
passwords = (itertools.product(Alphabet, repeat = CharLength))
print("n")
print("Currently working on passwords with ", CharLength, " characters.")
print("We are currently at ", (counter / (time.time() - start)), "attempts per second.")
print("It has been ", time.time() - start, " seconds.")
print("We have tried ", counter, " possible passwords.")
for i in passwords:
counter += 1
i = str(i)
i = i.replace("[", "")
i = i.replace("]", "")
i = i.replace("'", "")
i = i.replace(" ", "")
i = i.replace(",", "")
i = i.replace("(", "")
i = i.replace(")", "")
if i == Password:
end = time.time()
timetaken = end - start
print("nPassword found in ", timetaken, " seconds and ", counter, "attempts.")
print("That is ", counter / timetaken, " attempts per second.")
print("nThe password is "%s"." % i)
input("nPress enter when you have finished.")
exit()
Thanks.
python
python
edited Oct 14 at 15:18
Gerrit0
3,0091524
3,0091524
asked Oct 14 at 15:05
Michael O'Connell
61
61
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 3 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
What would this code be used for? It asks for the plain text password, not a hash, and just iterates over all possible strings of length 0 through 24 until it matches what it already knows.
– l0b0
Oct 15 at 3:02
@l0b0 I'll later implement some sort of web form functionality.
– Michael O'Connell
Oct 20 at 19:04
add a comment |
What would this code be used for? It asks for the plain text password, not a hash, and just iterates over all possible strings of length 0 through 24 until it matches what it already knows.
– l0b0
Oct 15 at 3:02
@l0b0 I'll later implement some sort of web form functionality.
– Michael O'Connell
Oct 20 at 19:04
What would this code be used for? It asks for the plain text password, not a hash, and just iterates over all possible strings of length 0 through 24 until it matches what it already knows.
– l0b0
Oct 15 at 3:02
What would this code be used for? It asks for the plain text password, not a hash, and just iterates over all possible strings of length 0 through 24 until it matches what it already knows.
– l0b0
Oct 15 at 3:02
@l0b0 I'll later implement some sort of web form functionality.
– Michael O'Connell
Oct 20 at 19:04
@l0b0 I'll later implement some sort of web form functionality.
– Michael O'Connell
Oct 20 at 19:04
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Some recommendations just looking at the style of the code:
- It would benefit from being run through
pycodestyle
,flake8
and/or similar tools to be more idiomatic. This would make the code easier to read for anyone familiar with Python. - Timing code should not be part of your program. External tools like
time
can handle that. - Use
argparse
rather thaninput
to make the program scriptable. The script should not stop anywhere to ask for input. - The
Alphabet
and25
in this code are good candidates for configuration or parameters. - You can remove all of a list of characters from a string in a single command.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f205544%2fpython-password-brute-forcer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Some recommendations just looking at the style of the code:
- It would benefit from being run through
pycodestyle
,flake8
and/or similar tools to be more idiomatic. This would make the code easier to read for anyone familiar with Python. - Timing code should not be part of your program. External tools like
time
can handle that. - Use
argparse
rather thaninput
to make the program scriptable. The script should not stop anywhere to ask for input. - The
Alphabet
and25
in this code are good candidates for configuration or parameters. - You can remove all of a list of characters from a string in a single command.
add a comment |
up vote
0
down vote
Some recommendations just looking at the style of the code:
- It would benefit from being run through
pycodestyle
,flake8
and/or similar tools to be more idiomatic. This would make the code easier to read for anyone familiar with Python. - Timing code should not be part of your program. External tools like
time
can handle that. - Use
argparse
rather thaninput
to make the program scriptable. The script should not stop anywhere to ask for input. - The
Alphabet
and25
in this code are good candidates for configuration or parameters. - You can remove all of a list of characters from a string in a single command.
add a comment |
up vote
0
down vote
up vote
0
down vote
Some recommendations just looking at the style of the code:
- It would benefit from being run through
pycodestyle
,flake8
and/or similar tools to be more idiomatic. This would make the code easier to read for anyone familiar with Python. - Timing code should not be part of your program. External tools like
time
can handle that. - Use
argparse
rather thaninput
to make the program scriptable. The script should not stop anywhere to ask for input. - The
Alphabet
and25
in this code are good candidates for configuration or parameters. - You can remove all of a list of characters from a string in a single command.
Some recommendations just looking at the style of the code:
- It would benefit from being run through
pycodestyle
,flake8
and/or similar tools to be more idiomatic. This would make the code easier to read for anyone familiar with Python. - Timing code should not be part of your program. External tools like
time
can handle that. - Use
argparse
rather thaninput
to make the program scriptable. The script should not stop anywhere to ask for input. - The
Alphabet
and25
in this code are good candidates for configuration or parameters. - You can remove all of a list of characters from a string in a single command.
answered Oct 15 at 3:09
l0b0
4,182923
4,182923
add a comment |
add a comment |
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f205544%2fpython-password-brute-forcer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What would this code be used for? It asks for the plain text password, not a hash, and just iterates over all possible strings of length 0 through 24 until it matches what it already knows.
– l0b0
Oct 15 at 3:02
@l0b0 I'll later implement some sort of web form functionality.
– Michael O'Connell
Oct 20 at 19:04