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