Python Caesar Cipher Program With No Key
I would like some help with figuring out the shift in a caesar cipher program, when no shift has been specified.
My current program:
def Decode():
ALPHABET = 'abcdefghijklmnopqrstuvwxyz'
data =
string = input("Please enter the string you wish to decode.n")
shift = int(input("Enter the key. (Number of shifts used when encoding original word.)n"))
for i in string:
if i.strip() and i in ALPHABET:
data.append(ALPHABET[(ALPHABET.index(i) - shift) % 26])
else:
data.append(i)
output = ''.join(data)
return (output)
How can I turn this program into one that prompts for a string to decode and a plain-text word that appears in the text (decoded string) and uses them to figure out the key in the caesar cipher shift?
For example: If the encoded string is: khoor zruog and the plain-text word is: hello, The program should work out the rotation was 3 and the decoded string is 'hello world'
This must be done without the ord or char functions.
python
add a comment |
I would like some help with figuring out the shift in a caesar cipher program, when no shift has been specified.
My current program:
def Decode():
ALPHABET = 'abcdefghijklmnopqrstuvwxyz'
data =
string = input("Please enter the string you wish to decode.n")
shift = int(input("Enter the key. (Number of shifts used when encoding original word.)n"))
for i in string:
if i.strip() and i in ALPHABET:
data.append(ALPHABET[(ALPHABET.index(i) - shift) % 26])
else:
data.append(i)
output = ''.join(data)
return (output)
How can I turn this program into one that prompts for a string to decode and a plain-text word that appears in the text (decoded string) and uses them to figure out the key in the caesar cipher shift?
For example: If the encoded string is: khoor zruog and the plain-text word is: hello, The program should work out the rotation was 3 and the decoded string is 'hello world'
This must be done without the ord or char functions.
python
Brute force (try them all), maybe. There are only 26 variations.
– Johnny Mopp
Nov 19 '18 at 18:30
Write a function that does the shiftshift(text, number)
. Then iterate throughfor i in range(26)
, callingshift
withi
asnumber
for each. Then you can just checkword in shift(text, i)
for each to see which keys have your word in the output. The other option would be frequency analysis to guess which letters are which based on which are the most common in english.
– Patrick Haugh
Nov 19 '18 at 18:31
add a comment |
I would like some help with figuring out the shift in a caesar cipher program, when no shift has been specified.
My current program:
def Decode():
ALPHABET = 'abcdefghijklmnopqrstuvwxyz'
data =
string = input("Please enter the string you wish to decode.n")
shift = int(input("Enter the key. (Number of shifts used when encoding original word.)n"))
for i in string:
if i.strip() and i in ALPHABET:
data.append(ALPHABET[(ALPHABET.index(i) - shift) % 26])
else:
data.append(i)
output = ''.join(data)
return (output)
How can I turn this program into one that prompts for a string to decode and a plain-text word that appears in the text (decoded string) and uses them to figure out the key in the caesar cipher shift?
For example: If the encoded string is: khoor zruog and the plain-text word is: hello, The program should work out the rotation was 3 and the decoded string is 'hello world'
This must be done without the ord or char functions.
python
I would like some help with figuring out the shift in a caesar cipher program, when no shift has been specified.
My current program:
def Decode():
ALPHABET = 'abcdefghijklmnopqrstuvwxyz'
data =
string = input("Please enter the string you wish to decode.n")
shift = int(input("Enter the key. (Number of shifts used when encoding original word.)n"))
for i in string:
if i.strip() and i in ALPHABET:
data.append(ALPHABET[(ALPHABET.index(i) - shift) % 26])
else:
data.append(i)
output = ''.join(data)
return (output)
How can I turn this program into one that prompts for a string to decode and a plain-text word that appears in the text (decoded string) and uses them to figure out the key in the caesar cipher shift?
For example: If the encoded string is: khoor zruog and the plain-text word is: hello, The program should work out the rotation was 3 and the decoded string is 'hello world'
This must be done without the ord or char functions.
python
python
edited Nov 19 '18 at 18:26
Rohit-Pandey
987615
987615
asked Nov 19 '18 at 18:22
JohnathanJohnathan
43
43
Brute force (try them all), maybe. There are only 26 variations.
– Johnny Mopp
Nov 19 '18 at 18:30
Write a function that does the shiftshift(text, number)
. Then iterate throughfor i in range(26)
, callingshift
withi
asnumber
for each. Then you can just checkword in shift(text, i)
for each to see which keys have your word in the output. The other option would be frequency analysis to guess which letters are which based on which are the most common in english.
– Patrick Haugh
Nov 19 '18 at 18:31
add a comment |
Brute force (try them all), maybe. There are only 26 variations.
– Johnny Mopp
Nov 19 '18 at 18:30
Write a function that does the shiftshift(text, number)
. Then iterate throughfor i in range(26)
, callingshift
withi
asnumber
for each. Then you can just checkword in shift(text, i)
for each to see which keys have your word in the output. The other option would be frequency analysis to guess which letters are which based on which are the most common in english.
– Patrick Haugh
Nov 19 '18 at 18:31
Brute force (try them all), maybe. There are only 26 variations.
– Johnny Mopp
Nov 19 '18 at 18:30
Brute force (try them all), maybe. There are only 26 variations.
– Johnny Mopp
Nov 19 '18 at 18:30
Write a function that does the shift
shift(text, number)
. Then iterate through for i in range(26)
, calling shift
with i
as number
for each. Then you can just check word in shift(text, i)
for each to see which keys have your word in the output. The other option would be frequency analysis to guess which letters are which based on which are the most common in english.– Patrick Haugh
Nov 19 '18 at 18:31
Write a function that does the shift
shift(text, number)
. Then iterate through for i in range(26)
, calling shift
with i
as number
for each. Then you can just check word in shift(text, i)
for each to see which keys have your word in the output. The other option would be frequency analysis to guess which letters are which based on which are the most common in english.– Patrick Haugh
Nov 19 '18 at 18:31
add a comment |
0
active
oldest
votes
Your Answer
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: "1"
};
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',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fstackoverflow.com%2fquestions%2f53380551%2fpython-caesar-cipher-program-with-no-key%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- 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.
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%2fstackoverflow.com%2fquestions%2f53380551%2fpython-caesar-cipher-program-with-no-key%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
Brute force (try them all), maybe. There are only 26 variations.
– Johnny Mopp
Nov 19 '18 at 18:30
Write a function that does the shift
shift(text, number)
. Then iterate throughfor i in range(26)
, callingshift
withi
asnumber
for each. Then you can just checkword in shift(text, i)
for each to see which keys have your word in the output. The other option would be frequency analysis to guess which letters are which based on which are the most common in english.– Patrick Haugh
Nov 19 '18 at 18:31