我正在寻找一种在C / C ++中进行字符串修改的方法。该软件的要求是不存在纯文本字符串(不需要加密,只需要加密),我正在努力找出这个要求阻力最小的路径。通过相对容易获取的工具来覆盖类名称的混淆和修改,但字符串修改似乎是一个更难跳的障碍。
如果这是标准答案,我对软件的后期处理感到满意。他们的工具是否已经编写完成,或者我是否需要修改我自己的脚本来编写字符串?
我也明白,在休息时纠正字符串并不是真正的安全。我明白了,你可能会得到它,但是它是对软件的要求所以我必须满足它。
谢谢! 斯蒂芬
答案 0 :(得分:1)
一个简单的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
答案 1 :(得分:1)
如果您正在处理ASCII文本,只需在每个字符上设置第7位以对其进行反明文,然后取消设置将其转换为纯文本。