Audio(音频)

HTML5提供给JavaScript编程用的Audio API则让开发者有能力在代码中直接操作原始的音频流数据,对其进行任意生成、加工、再造,诸如提高音色,改变音调,音频分割等多种操作,甚至可称为网页版的Adobe Audition。

AudioContext指纹原理大致如下:

方法一:生成音频信息流(三角波),对其进行FFT变换,计算SHA值作为指纹。

方法二:生成音频信息流(正弦波),进行动态压缩处理,计算MD5值。

两种方法都是在音频输出到音频设备之前进行清除,用户根本就毫无察觉就被获取了指纹。

AudioContext指纹基本原理:

主机或浏览器硬件或软件的细微差别,导致音频信号的处理上的差异,相同器上的同款浏览器产生相同的音频输出,不同机器或不同浏览器产生的音频输出会存在差异。

从上可以看出AudioContext和Canvas指纹原理很类似,都是利用硬件或软件的差异,前者生成音频,后者生成图片,然后计算得到不同哈希值来作为标识。

资料来源:https://segmentfault.com/a/1190000023249147

最后更新于