代码如下:
<script type="text/javascript">
function getCanvasFingerprint() {
// 创建canvas元素
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
// 设置canvas尺寸
canvas.width = 2000;
canvas.height = 200;
// 绘制文字和图形
ctx.textBaseline = "top";
ctx.font = "14px 'Arial'";
ctx.textBaseline = "alphabetic";
ctx.fillStyle = "#f60";
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = "#069";
ctx.fillText("https://test.com", 2, 15);
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
ctx.fillText("https://test.com", 4, 17);
// 绘制一个渐变矩形
var gradient = ctx.createLinearGradient(0, 0, canvas.width, 0);
gradient.addColorStop(0, "rgba(255, 255, 255, 1)");
gradient.addColorStop(1, "rgba(0, 255, 255, 1)");
ctx.fillStyle = gradient;
ctx.fillRect(0, 20, canvas.width, 100);
// 将绘制内容转换为数据URL格式的字符串
var data = canvas.toDataURL('image/png');
// 创建并返回这个字符串的散列值
var hash = 0;
for (var i = 0; i < data.length; i++) {
var character = data.charCodeAt(i);
hash = ((hash << 5) - hash) + character;
hash = hash & hash; // Convert to 32bit integer
}
return hash;
}
console.log('Canvas Fingerprint:', getCanvasFingerprint());
</script> 网友回复


