import { _decorator, Component, Node } from 'cc'; const { ccclass, property } = _decorator; @ccclass('GlobalTool') export class GlobalTool { public static CrcDecode(data: Uint8Array, crc32: number): void { const num: number = 2175242257; // 2175242257L in hexadecimal const dataView = new DataView( data.buffer, data.byteOffset, data.byteLength ); for (let i = 0; i < data.length; i += 4) { // Ensure we don't read beyond the end of the data if (i + 4 > data.length) break; // Read a 32-bit integer (little endian) from the buffer let anInt = dataView.getUint32(i, true); // Perform the XOR operations let val = anInt ^ num ^ crc32; // Rotate right 6 bits let jiemi = (val >>> 6) | (val << (32 - 6)); // Write the result back into the buffer dataView.setUint32(i, jiemi, true); } } //字节数组转string public static uint8ArrayToString(data: Uint8Array, Code?: string): string { if (!Code) Code = 'utf-8'; const decoder = new TextDecoder(Code); // 默认使用 'utf-8' 编码 return decoder.decode(data); } }