需要格式化一个字符数组,但在一个for循环中的每个索引,但这在一个分段错误(核心转储)结束
#include <iostream>
#include "stdint.h"
#include <cstring>
uint32_t Key = 0xbeefbabe;
char message[128];
char encrypted[128];
void offuscation ()
{
int len = strlen(message);
uint8_t k1 = Key & 0xff,
k2 = (Key >> 8) & 0xff,
k3 = (Key >> 16) & 0xff,
k4 = (Key >> 24) & 0xff;
for( int i = 0; i < len; i ++ )
{
message[i] ^= k1;
message[i] ^= k2;
message[i] ^= k3;
message[i] ^= k4;
sprintf((char *)encrypted[i], "\\x%02X", message[i]);
}
}
int main ()
{
printf("\n");
strcpy(message, "Help me Please");
offuscation ();
printf("\n\n");
std::cout << encrypted << "\n";
}
printf(“\x%02X”,message[i]);
但这个数组的每个索引都是另一个
1条答案
按热度按时间lf5gs5x21#
encrypted[i]
是一个单一的char
-你不能把它转换成一个指针并得到一些有用的东西。此外,如果将每个
char
编码为四个字符,则需要更多的空间。大概是这样的