socialbox-php/tests/utilities.js

34 lines
1,000 B
JavaScript
Raw Normal View History

export function crc32(str) {
var crcTable = [];
for (var i = 0; i < 256; i++) {
var crc = i;
for (var j = 8; j > 0; j--) {
if (crc & 1) {
crc = (crc >>> 1) ^ 0xEDB88320;
} else {
crc = crc >>> 1;
}
}
crcTable[i] = crc;
}
var crc32val = 0xFFFFFFFF;
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i);
crc32val = (crc32val >>> 8) ^ crcTable[(crc32val ^ charCode) & 0xFF];
}
return (crc32val ^ 0xFFFFFFFF) >>> 0;
}
export function randomCrc32String(length = 8) {
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var randomStr = '';
for (var i = 0; i < length; i++) {
randomStr += characters.charAt(Math.floor(Math.random() * characters.length));
}
return crc32(randomStr).toString(16); // Convert to hexadecimal string
}
console.log(randomCrc32String()); // Example usage