@taichunmin/crc
Version:
A cross platform alternative for calculating Cyclic Redundancy Checks (CRC) values.
2 lines (1 loc) • 3.22 kB
JavaScript
;function t(F){let x=typeof F;return F!=null&&(x==="object"||x==="function")}function n(F,x,B){if(!t(F)||!Array.isArray(x)||x.length<1)return F;let E=F;for(let A of x.slice(0,-1))t(E[A])||(E[A]={}),E=E[A];return E[x.at(-1)]=B,F}var b=new Uint8Array(1),l=new Uint16Array(1),C=new Uint32Array(1);var y=new Uint32Array([0,735957071,1471914142,2087088337,2943828284,2225770867,4174176674,3541119469,4141685331,3707816476,2707864269,2327538306,1504336751,1920437024,236059633,634137534,1166650509,1851030722,305269779,972020828,3942575537,3240312318,3175435567,2526584160,3008673502,2559141521,3840874048,3476211215,472119266,939403181,1268275068,1615169331,2333301018,2697890133,3702061444,4151650763,610539558,263833705,1944041656,1476552951,2110669641,1444123398,712369111,27800472,3535340149,4184134202,2231542507,2933879460,3466261911,3846645208,2569098505,3002893638,1642968235,1244685540,911610933,495699066,944238532,328875915,1878806362,1143054101,2536550136,3169681079,3230338662,3948338729,3189058079,2512976464,3920530049,3262339790,291662627,985643884,1188678589,1828985842,1221079116,1662377987,527667410,883835037,3888083312,3429015871,2953105902,2614690209,4221339282,3493943005,2888246796,2281371203,1424738222,2134251489,55600944,680376191,222403777,647777422,1526348895,1898441744,2721504765,2313883058,4119690595,3729829164,889615109,517710666,1656607643,1231029204,2591109689,2980897398,3452605095,3860284136,3285936470,3892754713,2489371080,3216841095,1823221866,1198651429,991398132,281696443,1888477064,1532104647,657751830,216641369,3757612724,4096085755,2286108202,2745101925,2253571547,2911835540,3521733957,4197758218,690324711,49829032,2124293241,1430516790,3558460437,4291042394,2208459915,2826943684,2070842665,1353932134,752168375,118029816,583325254,152634889,1971287768,1587717783,2377357178,2792245045,3657971684,4057327531,2442158232,3125653719,3324755974,3992326217,1055334820,356184555,1767670074,1115771253,1733130955,1284549252,821484117,455805466,3359259639,3823627192,2676071273,3025947430,1594529039,1960265024,145831313,594339294,4034778163,3684697212,2814801069,2350621922,2849476444,2181717779,4268502978,3585212301,111201888,763174447,1360752382,2059845297,444807554,828303821,1295554844,1726302547,3052697790,2653530353,3796883488,3381790831,3965592529,3347313566,3152380751,2419610368,1126785773,1760866978,345162355,1062146620,1779230218,1104229957,1035421332,376084187,3313215286,4003886969,2462058408,3105740775,2631007321,3071028246,3412745415,3770125448,866565477,410742058,1679629819,1338035636,797264519,72915656,2017389081,1407400534,2163346363,2872040436,3611929381,4237589354,3646443732,4068835483,2397302858,2772312069,1982796264,1576190375,563392886,172581177,3776954128,3401740127,3064209294,2642005953,1315503660,1706372707,433282738,839814909,398632259,1008694540,1081673181,1805964690,3098928255,2473079856,4010689761,3302200494,2761298845,2404107218,4079858435,3639632716,199316129,540836590,1549464127,2005344880,1380649422,2039929217,99658064,774732063,4248586482,3605108925,2861033580,2170173475]);function r(F=new Uint8Array,x=0){C[0]=x^4294967295;for(let B of F)C[0]=y[(C[0]^B)&255]^C[0]>>>8;return(C[0]^4294967295)>>>0}module.exports=r;