0
바이트 배열을 받고 원래의 데이터 바이트를 복구하기 위해 배타적 또는 다음 바이트와 20h를 모두 제거해야합니다.특정 값으로 XOR하고 다음 XOR 바이트를 필터링합니다.
가장 좋은 방법은 무엇입니까?
바이트 배열을 받고 원래의 데이터 바이트를 복구하기 위해 배타적 또는 다음 바이트와 20h를 모두 제거해야합니다.특정 값으로 XOR하고 다음 XOR 바이트를 필터링합니다.
가장 좋은 방법은 무엇입니까?
글쎄, 우선주의해야 할 점은 어레이에서 값을 제거 할 수 없다는 것입니다. 따라서 원위치로 그 값을 처리 할 수 없습니다. 그래서 아마도 다음과 같습니다 :
static byte[] Demungify(byte[] value)
{
var result = new List<byte>(value.Length);
bool xor = false;
for (int i = 0; i < value.Length; i++)
{
byte b = value[i];
if (xor)
{
b ^= 0x20;
xor = false;
}
if (b == 0x7D)
{
xor = true; // xor the following byte
continue; // skip this byte
}
result.Add(b);
}
return result.ToArray();
}
고마워, 아주 깨끗한 솔루션. –
바이트 배열을 반복하고 바이트 계산 (xor 또는 다른 것)을 적용하면됩니다. – ken2k