UNPKG

fast-md5-web

Version:

A TypeScript project with tsup bundler for Rust WASM MD5 calculation

86 lines (70 loc) 3.32 kB
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>简单MD5测试</title> <script src="https://cdn.jsdelivr.net/npm/spark-md5@3.0.2/spark-md5.min.js"></script> </head> <body> <h1>MD5测试</h1> <div id="results"></div> <script type="module"> import init, { Md5Calculator } from './wasm_md5.js'; async function test() { await init(); const calculator = new Md5Calculator(); calculator.set_log_enabled(true); const results = document.getElementById('results'); // 测试空文件 console.log('=== 空文件测试 ==='); const emptyData = new Uint8Array(0); const wasmEmpty = await calculator.calculate_md5_async(emptyData, 32); const sparkEmpty = new SparkMD5.ArrayBuffer(); sparkEmpty.append(emptyData.buffer); const sparkEmptyResult = sparkEmpty.end(); const expected = 'd41d8cd98f00b204e9800998ecf8427e'; results.innerHTML += ` <h3>空文件测试</h3> <p>WASM: ${wasmEmpty}</p> <p>Spark: ${sparkEmptyResult}</p> <p>Expected: ${expected}</p> <p>WASM正确: ${wasmEmpty === expected}</p> <p>Spark正确: ${sparkEmptyResult === expected}</p> <p>一致: ${wasmEmpty === sparkEmptyResult}</p> `; // 测试"hello"字符串 console.log('=== hello字符串测试 ==='); const helloData = new TextEncoder().encode('hello'); const wasmHello = await calculator.calculate_md5_async(helloData, 32); const sparkHello = new SparkMD5.ArrayBuffer(); sparkHello.append(helloData.buffer); const sparkHelloResult = sparkHello.end(); const expectedHello = '5d41402abc4b2a76b9719d911017c592'; // "hello"的MD5 results.innerHTML += ` <h3>"hello"字符串测试</h3> <p>WASM: ${wasmHello}</p> <p>Spark: ${sparkHelloResult}</p> <p>Expected: ${expectedHello}</p> <p>WASM正确: ${wasmHello === expectedHello}</p> <p>Spark正确: ${sparkHelloResult === expectedHello}</p> <p>一致: ${wasmHello === sparkHelloResult}</p> `; // 测试单字节 console.log('=== 单字节测试 ==='); const singleByte = new Uint8Array([65]); // 'A' const wasmSingle = await calculator.calculate_md5_async(singleByte, 32); const sparkSingle = new SparkMD5.ArrayBuffer(); sparkSingle.append(singleByte.buffer); const sparkSingleResult = sparkSingle.end(); results.innerHTML += ` <h3>单字节'A'测试</h3> <p>WASM: ${wasmSingle}</p> <p>Spark: ${sparkSingleResult}</p> <p>一致: ${wasmSingle === sparkSingleResult}</p> `; console.log('测试完成'); } test().catch(console.error); </script> </body> </html>