Есть простой код на delphi, суть - шифрует серийный номер диска уже проверенной и рабочей функцией:
const
SEED_SIZE = 16;
SEED: array[0..SEED_SIZE - 1] of Byte = (
$51, $2F, $F6, $AE, $46, $8D, $DE, $5D, $D5, $73, $0A, $6D, $12, $56, $83, $78
);
function xordata(InStr: RawByteString; InSize: Integer): RawByteString;
var
i, j: Integer;
bt: byte;
begin
SetLength(Result, InSize);
j := 0;
for i := 0 to InSize - 1 do
begin
if j = 16 then j := 0;
bt := Byte(InStr[i + 1]) xor SEED[j];
bt := bt xor i;
Byte(Result[i + 1]) := bt;
inc(j);
end;
end;
xordata(SERIAL_NUMBER, SERIAL_NUMBER_LENGTH);
Нужно данное решение грамотно перевести на С++. Господа знатоки прошу помочь, как грамотно и кратко написать такой код?