// Device Fingerprint তৈরি করা (canvas + screen + timezone ভিত্তিক)
function generateDeviceFingerprint() {
try {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillText('winbari-fp', 2, 2);
const canvasData = canvas.toDataURL();
const raw = [
navigator.userAgent,
screen.width + 'x' + screen.height,
Intl.DateTimeFormat().resolvedOptions().timeZone,
navigator.language,
canvasData
].join('|');
let hash = 0;
for (let i = 0; i < raw.length; i++) {
hash = ((hash << 5) - hash) + raw.charCodeAt(i);
hash |= 0;
}
return 'fp_' + Math.abs(hash);
} catch (e) {
return ''; // fail করলে খালি রাখো, generic fallback string বসিও না
}
}
document.getElementById('deviceFpInput').value = generateDeviceFingerprint();