Другие языки программирования и технологии
Кто работает в Делфи, помогите!!!
нужно написать программу шифрования текста, например русские буквы заменить английскими (типо транслита)
Доброго времени суток.
И в чем проблема? Делаете таблицу пеерекодировки.
const arrCyrToLat : array['а'..'я'] of Char = ('f','z', и т. д.
А потом получаете текст в строку S и перекодируете его
for i:=1 to Length(S) do S[ i ] := arrCyrToLat[S[ i ]];
Ессно, такое сработает только для нижнего регистра. Как сделать поддержку верхнего подумайте сами.
Таблицу перекодировки можно делать любую. Главное, чтобы она обеспечивала однозначное соответствие символов для обеспечения возможности обратной перекодировки.
Если нужно шифрование, то вот вариант.
var
Key, S, tmpS : String;
j : Word;
begin
Write('Enter phrase: ');
ReadLn(S);
Write('Enter key for encrypting: ');
ReadLn(Key);
tmpS := '';
for j:=0 to Length(S)-1 do
tmpS := tmpS + Chr(Byte(S[j+1]) xor Byte(Key[(j mod Length(Key))+1]));
S := tmpS;
WriteLn(S);
Write('Enter key for decrypting: ');
ReadLn(Key);
tmpS := '';
for j:=0 to Length(S)-1 do
tmpS := tmpS + Chr(Byte(S[j+1]) xor Byte(Key[(j mod Length(Key))+1]));
WriteLn(tmpS);
ReadLn;
end.
Здесь сначала вводится фраза, а затем ключ шифра. После шифровки выводится результат и повторно вводится ключ. Если он совпадет с введенным при шифровке, фраза будет расшифрована. Если нет, то увы.. .
Удачи!
И в чем проблема? Делаете таблицу пеерекодировки.
const arrCyrToLat : array['а'..'я'] of Char = ('f','z', и т. д.
А потом получаете текст в строку S и перекодируете его
for i:=1 to Length(S) do S[ i ] := arrCyrToLat[S[ i ]];
Ессно, такое сработает только для нижнего регистра. Как сделать поддержку верхнего подумайте сами.
Таблицу перекодировки можно делать любую. Главное, чтобы она обеспечивала однозначное соответствие символов для обеспечения возможности обратной перекодировки.
Если нужно шифрование, то вот вариант.
var
Key, S, tmpS : String;
j : Word;
begin
Write('Enter phrase: ');
ReadLn(S);
Write('Enter key for encrypting: ');
ReadLn(Key);
tmpS := '';
for j:=0 to Length(S)-1 do
tmpS := tmpS + Chr(Byte(S[j+1]) xor Byte(Key[(j mod Length(Key))+1]));
S := tmpS;
WriteLn(S);
Write('Enter key for decrypting: ');
ReadLn(Key);
tmpS := '';
for j:=0 to Length(S)-1 do
tmpS := tmpS + Chr(Byte(S[j+1]) xor Byte(Key[(j mod Length(Key))+1]));
WriteLn(tmpS);
ReadLn;
end.
Здесь сначала вводится фраза, а затем ключ шифра. После шифровки выводится результат и повторно вводится ключ. Если он совпадет с введенным при шифровке, фраза будет расшифрована. Если нет, то увы.. .
Удачи!
Транслит - это не шифрование.
Я скинул тебе на почту програмку, реализующую шифрование и расшифрование. Используется "шифр Цезаря". Надеюсь, что разберешься. Сам когда-то её писал.
Я скинул тебе на почту програмку, реализующую шифрование и расшифрование. Используется "шифр Цезаря". Надеюсь, что разберешься. Сам когда-то её писал.
Похожие вопросы
- Дана матрица размером NxM. Упорядочить ее строки по неубыванию их наибольших элементов. в делфи помогите плиз срочно
- Кто работает в делфи или паскале....
- Почему не работает моя делфи-программа которая при прокрутке колесика мышки должна была менять число в эдите?
- Кто работает с графикой!! Помогите! Есть 2 файла один-jpg, второй-pgn(картинка и логотип без фона)
- помогите с делфи
- помогите, пожалуйста, c делфи!
- Помогите, пожалуйста, написать программу на делфи с ассемблерными вставками.
- надо решить задачку через делфи и паскаль)))
- Вопрос по делфи
- языки делфи и си