Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行在Ubuntu上需要执行C#应用程序的节点服务器-如何执行?_C#_C++_Node.js_Child Process - Fatal编程技术网

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

运行在Ubuntu上需要执行C#应用程序的节点服务器-如何执行?,c#,c++,node.js,child-process,C#,C++,Node.js,Child Process,我有一个非常简单的C#应用程序,它是由前一个人编写的。它使用MD5CryptoServiceProvider计算哈希,使用一些种子字符串生成随机代码 我有一个Node.js服务器正在运行,我想执行这个应用程序并使用输出 我不知道如何在Ubuntu上运行C#,也找不到一个MD5库给出相同的答案 以下是整个功能: { MD5 md5 = new MD5CryptoServiceProvider(); byte[] encodeBytes = System.Text.Encoding.UT

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

我有一个Node.js服务器正在运行,我想执行这个应用程序并使用输出

我不知道如何在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;

}

<> P>我有可能修改这个C脚本来作为子进程运行,或者使用C++脚本获得相同的答案,我以前已经用一个节点服务器运行过。 谢谢

你可以使用mono和mcs在Ubuntu上运行C#文件,我认为它们工作得非常好。下面是如何做到这一点

TL;博士: 首先,您需要安装Monodevelop。这可以通过以下命令完成:

sudo apt-add-repository ppa:directhex/ppa  
sudo apt-get update  
sudo apt-get install monodevelop 
安装mono后,您需要安装mcs:

sudo apt-get install mcs 

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

您只需将代码转换为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();
函数generateCode(){
设seed1='abc';
设seed2='def';
设seed3='ghi';
设hashed=md5(seed1+seed2+seed3);
让值=[];
for(设i=0;i
我使用了中的md5实现,但是任何以字符串形式返回十六进制的实现都应该可以工作


当然,您可以将其简化,但这表明了简单地转换代码是多么容易。

将C代码转换为Javascript不是更好的解决方案吗?您必须将每个问题限制为一个问题。询问,如何启动一个生成应用程序表单节点与之交换数据,询问如何让C#程序在Ubuntu上运行,或者询问如何在nodejs中实现给定的代码。npm有MD5模块如果您编写一个答案,那么它必须是自包含的,这样即使外部链接中断,读者也能够解决问题。到那时为止,只有答案是不够的。