React Native/Expo-go中用于GCS数据校验的CRC32C哈希库推荐
适用于React Native的纯JS/TS CRC32C库推荐(适配GCS)
以下是两个完全兼容React Native环境、纯JS/TS实现的CRC32C库,完全匹配GCS的校验标准:
crc32c-js
纯TypeScript编写,无任何原生依赖,直接适配GCS的CRC32C算法。支持字符串、Uint8Array等多种输入类型,输出结果直接符合GCS要求的32位无符号整数。
使用示例:import { crc32c } from 'crc32c-js'; // 计算字符串的CRC32C哈希 const stringHash = crc32c('your-upload-data'); // 计算二进制数据(如文件Blob转成的Uint8Array)的CRC32C哈希 const binaryHash = crc32c(new Uint8Array([0x01, 0x02, 0x03]));@protobufjs/crc32
虽然包名带"crc32",但支持通过指定多项式参数启用CRC32C计算,纯JS实现体积小巧,适合React Native场景。需要注意指定CRC32C的多项式0x1EDC6F41并开启反向计算模式,才能匹配GCS的校验逻辑。
使用示例:import crc32 from '@protobufjs/crc32'; // 参数依次为:输入数据、初始值、是否反向计算、CRC32C多项式 const crc32cHash = crc32('your-upload-data', 0, true, 0x1EDC6F41);
验证建议
可以用GCS官方测试数据验证正确性:比如字符串"hello world"的CRC32C哈希值为十进制2327192106(十六进制0x8A9136AA),计算后对比结果确保库的正确性。
内容的提问来源于stack exchange,提问作者d34th4ck3r
相关产品推荐
相关产品推荐

