Перетаскивание строк в C / Stack Overflow

Я ищу способ сделать строковое искажение в C / C ++. Требования к программному обеспечению — отсутствие текстовых строк (шифрование не требуется, только искажение), и я пытаюсь найти путь наименьшего сопротивления для этого требования. Запутывание и искажение имен классов осуществляется с помощью относительно простых в освоении инструментов, но искажение строк кажется более трудным препятствием для прыжка.

Я доволен последующей обработкой программного обеспечения, если это стандартный ответ. Их инструменты уже написаны, чтобы сделать это, или мне нужно взломать мои собственные сценарии, чтобы разобрать строки?

Также я понимаю, что искажение струн в состоянии покоя не совсем настоящая безопасность. Я понимаю, и вы, вероятно, понимаете, но это требование, которое было наложено на программное обеспечение, поэтому я должен его выполнить.

Спасибо!
Стеф

2

Решение

Простой ROT13 Encrypter / Decrypter. Не нужно писать функцию расшифровки. Он называется ROT13, потому что он просто поворачивает 13 символов обратно в исходное состояние.

#include <iostream>
using namespace std;//encrypt or decrypt string
void ROT13_Encrypt_Decrypt_String(char str[]){

for( int i=0; str[i] != '\0'; i++ ){
if(str[i] >= 'a' && str[i] <= 'm'){
str[i] += 13;
}

else if(str[i] > 'm' && str[i] <= 'z'){
str[i] -= 13;
}

else if (str[i] >= 'A' && str[i] <= 'M'){
str[i] += 13;
}

else if(str[i] > 'M' && str[i] <= 'Z'){
str[i] -= 13;
}

}
}int main()
{
char mystring [] = "Hello World!";
cout << "Original string: " << mystring << endl;

//encrypt
ROT13_Encrypt_Decrypt_String(mystring);

cout << "Encrypted string: " << mystring << endl;

//decrypt
ROT13_Encrypt_Decrypt_String(mystring);

cout << "Decrypted string: " << mystring << endl;

return 0;
}

Выход:

Original string: Hello World!
Encrypted string: Uryyb Jbeyq!
Decrypted string: Hello World!
Press any key to continue
1

Другие решения

Если вы имеете дело с текстом ASCII, просто установите 7-й бит на каждом символе для де-простого текста, а затем отмените его, чтобы превратить его в обычный текст.

1