c# 能否执行node.js的程序

抖音小程序的获取手机号码的代码是用node.js写的,但我们的后端是C#,能否在C#里执行node.js 获取到手机号码呢?

// Node.js
const crypto = require("crypto");

function decrypt(encryptedData, sessionKey, iv) {
  const decipher = crypto.createDecipheriv(
    "aes-128-cbc",
    Buffer.from(sessionKey, "base64"),
    Buffer.from(iv, "base64")
  );
  let ret = decipher.update(encryptedData, "base64");
  ret += decipher.final();
  return ret;
}


小程序取得手机号码:

https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/sensitive-data-process

https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/acquire-phone-number-acquire




# python
import base64

# https://www.pycryptodome.org/
# pip install pycryptodome
from Crypto.Cipher import AES


def decrypt(encrypted_data, session_key, iv):
    data = base64.b64decode(encrypted_data)
    _key = base64.b64decode(session_key)
    _iv = base64.b64decode(iv)

    cipher = AES.new(_key, AES.MODE_CBC, _iv)
    return cipher.decrypt(data)

这就是aes+base64加密的,直接用C#改写即可,可以脱离nodejs

使用WebSocket可以实现C#和node.js通信