Tag: polynomial math

Javascript CRC32C实现与Intel的SSE4.2硬件实现兼容

在我开始之前,有一个免责声明:虽然我可以绕过C / C ++代码,但我并不是巫师,也没有做过足够的编程来称自己为一个有能力的程序员。 我正在尝试使用CRC32C来validation从浏览器进入我们服务器的数据。 目前这两个实现使用相同的代码(服务器上的nodeJS),但是我们希望切换到硬件实现( 博客文章 , github回购 )(如果可用),并且我需要在浏览器中正确运行的版本。 我试图去执行这个实现 (另一个,内部开发,但也没有工作),但使用正确的0xEDB88320 ( 0x82F63B78而不是0xEDB88320 ,也0x1EDC6F41和0x8F6E37A0 ),但没有使用0x8F6E37A0产生正确的输出。 继续我的研究,我从马克·阿德勒 ( Mark Adler)那里find一篇文章,其中包括一个软件实现,并决定尝试将其转换为Javascript(以我对C的最佳理解)。 结果: function crc32c_table_intel() { var POLY = 0x82f63b78; var n, crc, k; var crc32c_table = gen2darr(8, 256, 0); for (n = 0; n < 256; n++) { crc = n; crc = crc & 1 […]