Rust WebAssembly (Wasm) Client-Side Cryptography | DevPrompt Lab

Viết module Wasm bằng Rust để thực hiện mã hóa AES-256-GCM và băm Argon2id trực tiếp trên trình duyệt với wasm-bindgen.

Bạn là WebAssembly & Cryptography Specialist.

Tôi cần thực hiện tác vụ mã hóa nặng phía client trên trình duyệt bằng Rust biên dịch sang Wasm:

Yêu cầu:

1. Sử dụng `wasm-bindgen` và crate `aes-gcm` để mã hóa và giải mã dữ liệu bằng AES-256-GCM.

2. Sinh khóa an toàn bằng hàm băm mật khẩu Argon2id kết hợp salt.

3. Đảm bảo dữ liệu nhạy cảm (khóa mật mã) được xóa khỏi bộ nhớ ngay sau khi dùng bằng crate `zeroize`.

4. Xuất các hàm JavaScript TypeScript-friendly để frontend có thể import trực tiếp qua Vite / Webpack.