Как использовать ASCII Value чего-либо - PullRequest
0 голосов
/ 19 сентября 2011

Я хочу взять символ из файла file.txt, который имеет только один символ, например «C», и использовать его значение ASCII, чтобы превратить другой файл file2.txt и изменить его. Например

значение C = 67

file2.txt имеет:

Hello
World

Я хочу, чтобы он изменил каждый символ и включил его:

Добавление значения ASCII H со значением A CSC "C" и деление его на два, чтобы вы получили другое значение ASCII, которое будет новым символом в новом файле, который он собирается создать.

И поэтому новый файл будет напечатан как "dlroW olleH" с новыми значениями ASCII для каждого символа, как шифрование.

Как я могу сделать это без каких-либо необычных команд.

Вот мои ключевые вопросы:

  1. Как я могу взять значения ASCII и смешать их вместе
  2. В случае 135,5, когда его деление всегда принимает большее число (136) или меньшее (134), потому что, насколько я знаю, нет символа ASCII со значением 67,75.
  3. Как я могу сделать так, чтобы новый файл был задом наперед? Новый файл должен быть напечатан как файл .txt.

так:

file.txt --> Key 
file1.txt -->file to be encrypted
file3.txt encrypted file.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

1.) Как можно взять значения ASCII и смешать их вместе

Это называется шифр транспонирования , однако:

деление(chr1 + chr2) / 2 - неосуществимое предложение (необратимое, как говорит Джонатан Л.), потому что вы выбросите младший бит из chr2.Независимо от того, как вы выполняете округление, учтите, что ваше шифрование сопоставит 26 значений {'A', 'B', 'C', ... 'Z'} только с 13 (или 14).Это не биекция, вы теряете информацию.

Так что просто не делайте деление.

char transpose = whatever;
int transpose_offset = transpose-'A';
char encrypt(char in, int transpose_offset) {
   return ((in-'A') + transpose_offset) % 26 + 'A';
}

(Деление на 2 эквивалентно правому дерьму >> 1. Вместочто вы можете сохранить информацию, совершая циклический сдвиг. Но в любом случае, это мало что дает вам, тривиально сломать транспозиционный шифр, табулируя его.)

3.) Как можноЯ делаю так, чтобы новый файл был задом наперед?

Легко.Либо сделайте шифрование, работающее в обратном направлении через исходный текст, и запишите его по ходу дела.Или же зашифруйте, отправив вперед, сохраните результат и запишите обратно.

0 голосов
/ 19 сентября 2011

Вместо деления на два, вы можете xor байтов файла, который будет зашифрован, с байтами ключа, чтобы получить зашифрованный файл. Затем вы можете запустить его снова для расшифровки.

...