こんにちは、私はkeyNo = 0のデフォルトのaesキーを別のaesキーに変更しようとしています。しかし、私は得続けます
static crc32 = (input) => {
const crcTable = new Array(256);
for (let i = 0; i < 256; i++) {
let c = i;
for (let j = 0; j < 8; j++) {
c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
}
crcTable[i] = c >>> 0;
}
let crc = 0 ^ (-1);
for (let i = 0; i < input.length; i++) {
crc = (crc >>> ^ crcTable[(crc ^ input.charCodeAt(i)) & 0xFF];
}
crc = crc ^ (-1);
// Convert the integer to an array of bytes
const crcBytes = []; for (let i = 0; i < 4; i++) {
crcBytes.push((crc >>> (i * 8)) & 0xFF);
}
return crcBytes.reverse();
}
私の理解では、CRCはCmd + keyNo +(newKey xまたはoldkey)+keyversionで計算されます。こんな感じ。
let data_to_crc = cmd.concat(_keyNo).concat(_newKey).concat(_keyVersion);
let data_to_crc_string = DesfireUtils.getHexFromDecArray(data_to_crc);
let crc_data = DesfireUtils.crc32(data_to_crc_string);