Caesar cipher matlab code

조회 수: 28 (최근 30일)
Md. Atiqur Rahman
Md. Atiqur Rahman 2022년 8월 25일
댓글: Walter Roberson 2022년 8월 31일
Can anyone write a very basic code for caesar cipher that shifts input characters by 5 place?
  댓글 수: 1
James Tursa
James Tursa 2022년 8월 25일
What have you done so far? What specific problems are you having with your code?

댓글을 달려면 로그인하십시오.

채택된 답변

Md. Atiqur Rahman
Md. Atiqur Rahman 2022년 8월 27일
편집: Walter Roberson 2022년 8월 28일
%% To whom it may concern
Plaintext= input('Plaintext: ','s')
Shift= input('Shift: ')
Output = Plaintext+Shift;
r=Output-26;
for i = 1:length(Plaintext)
if Output(i) <= 90
Output(i) = char(Output(i));
else
Output(i) = char(r(i));
end
end
fprintf('Ciphertext: ','s')
disp(char(Output))
  댓글 수: 10
Md. Atiqur Rahman
Md. Atiqur Rahman 2022년 8월 31일
I think I've done it better 😎
Walter Roberson
Walter Roberson 2022년 8월 31일
Output(i) = char(Output(i));
Why are you doing that redundant operation? Yes, you convert to char but you store it in the same array so it would convert back to the same data type.
Output(Output<=58)=32;
Why are you mixing logical indexing of the entire array inside a loop?

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2022년 8월 25일
cc5('HELLO')
ans = 'MJQQT'
cc5('ABCXYZ')
ans = 'FGHCDE'
function out = cc5(in)
TT('A':'Z') = ['F':'Z', 'A':'E'];
out = TT(in);
end
  댓글 수: 2
Md. Atiqur Rahman
Md. Atiqur Rahman 2022년 8월 27일
편집: Walter Roberson 2022년 8월 27일
Plaintext= input('Plaintext: ','s')
Shift= input('Shift: ')
if Plaintext+Shift <= 90
Ciphertext = (char(Plaintext+Shift))
else
Ciphertext = (char(Plaintext+Shift-26))
end
%Can you fix this?
Walter Roberson
Walter Roberson 2022년 8월 27일
Your Plaintext is a vector of characters. Plaintext+Shift <= 90 would be a vector. When you if a vector, the result is considered true only if all of the values in the vector are non-zero. So your Plaintext+Shift <= 90 test would be true only if all of the characters where no more than 'U'
You should investigate logical indexing.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Encryption / Cryptography에 대해 자세히 알아보기

태그

제품


릴리스

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by