Ubuntu 上的节点服务器 运行 需要执行 C# 应用程序 - 如何?

Node Server Running on Ubuntu that needs to execute a C# application - how?

我有一个非常简单的 C# 应用程序,它是由以前的人编写的。它使用 MD5CryptoServiceProvider 来计算哈希值,使用一些种子字符串来生成随机代码。

我有一个 Node.js 服务器 运行ning,我想执行此应用程序并使用输出。

我不知道如何从 Ubuntu 到 运行 C#,而且我找不到给出相同答案的 MD5 库。

这里是整个函数:

{

  MD5 md5 = new MD5CryptoServiceProvider();

  byte[] encodeBytes = System.Text.Encoding.UTF8.GetBytes(seed1+ seed2+ seed3);

  byte[] output = md5.ComputeHash(encodeBytes);

  string result = string.Format("{0:D}{1:D}{2:D}{3:D}{4:D}{5:D}",

                                ((output[0] + output[1]) % 10), ((output[2] + output[3] + output[4]) % 10),

                                ((output[5] + output[6]) % 10), ((output[7] + output[8] + output[9]) % 10),

                                ((output[10] + output[11] + output[12]) % 10), ((output[13] + output[14] + output[15]) % 10));

  return result;

}

我是否可以将此 C# 脚本修改为 运行 作为子进程,或者使用 C++ 脚本获得相同的答案,我之前已经通过节点服务器获得了 运行 .

谢谢!!

您可以通过使用单声道和 mcs 运行 Ubuntu 上的 C# 文件,我认为它们工作得很好。 a tuturial link 如何操作。

长话短说: 首先,您需要安装 Monodevelop。这可以通过以下命令完成:

sudo apt-add-repository ppa:directhex/ppa  
sudo apt-get update  
sudo apt-get install monodevelop 

安装单声道后,您需要安装 mcs:

sudo apt-get install mcs 

当两者都正确安装后,您需要制作一个 .cs 文件(C# 文件)。您可以使用 mcs (mcs <filename.cs>) 编译程序。然后用mono执行生成的exe文件:mono <filename.exe>.

您应该将代码转换为 Javascript:

function generateCode() {

  let seed1 = 'abc';
  let seed2 = 'def';
  let seed3 = 'ghi';
  let hashed = md5(seed1 + seed2 + seed3);
  let values = [];

  for (let i = 0; i < hashed.length; i += 2) {
    values.push(parseInt('0x' + hashed.substr(i, 2)));
  }

  let codeParts = [((values[0] + values[1]) % 10), ((values[2] + values[3] + values[4]) % 10),((values[5] + values[6]) % 10), ((values[7] + values[8] + values[9]) % 10),((values[10] + values[11] + values[12]) % 10), ((values[13] + values[14] + values[15]) % 10)];
  let code = codeParts.join('');
    alert(code);
}

generateCode();

我使用了 here 中的 md5 实现,但任何 returns 十六进制作为字符串都应该有效。

Javascript sample

C# for comparison (same seed)

您当然可以简化它,但这只是为了证明简单地转换代码是多么容易。