3

我正在寻找一种在 C/C++ 中进行字符串修饰的方法。该软件的要求是不存在纯文本字符串(不需要加密,只需修改),我正在尝试找出满足此要求的阻力最小的路径。类名的混淆和修改是通过相对容易获得的工具来解决的,但字符串修改似乎是一个更难跨越的障碍。

如果这是标准答案,我对软件的后处理感到满意。他们的工具是否已经为此编写了,还是我需要破解自己的脚本来处理字符串?

我也明白,对静止的琴弦进行修饰并不是真正的安全。我明白了,你可能也明白了,但是嘿,这是软件上的一个要求,所以我必须满足它。

谢谢!斯蒂芬

4

2 回答 2

2

一个简单的 ROT13 加密器/解密器。无需编写解密函数。它之所以称为 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
于 2012-09-05T16:56:01.443 回答
1

如果您正在处理 ASCII 文本,只需将每个字符的第 7 位设置为去明文,然后取消设置以将其转换为明文。

于 2012-09-16T00:59:58.117 回答