3 async function asyncFunction() {
4 // 导入 WebAssembly 模块
5 const module1 = await WebAssembly.compileStreaming(fetch('webassemencdec.wasm'));
6 const instance = await WebAssembly.instantiate(module1);
7
8 let jstr = new Array(100); // 初始长度可设置得大一些,根据实际加密后的字符串长度调整
9 let length;
10
11 function callEncryptionAES(strSrc, gkey, giv) {
12 return new Promise((resolve, reject) => {
13 try {
14 instance.exports.EncryptionAES(
15 strSrc,
16 gkey,
17 giv,
18 // 使用 Buffer.from 转换字符串为 Uint8Array,以便与 C++ 交互
19 new Uint8Array(jstr),
20 // 获取长度的引用
21 length = new Int32Array(new SharedArrayBuffer(4))[0]
22 );
23
24 // 如果加密成功(返回值为 1),处理结果
25 if (instance.exports.EncryptionAES === 1) {
26 let result = '';
27 for (let i = 0; i < length; i++) {
28 result += String.fromCharCode(jstr[i]);
29 }
30 resolve(result);
31 } else {
32 reject("Encryption failed");
33 }
34 } catch (error) {
35 reject(error);
36 }
37 });
38 }
39
40 // 使用示例
41 callEncryptionAES("your_input_string", "your_key", "your_initialization_vector")
42 .then((encryptedStr) => console.log("Encrypted string:", encryptedStr))
43 .catch((error) => console.error("Error:", error));
44 }
这段代码执行 node dd.js, 啥也没有就返回了, 可以像c++ 一样可以debug的么?