运行在Ubuntu上需要执行C#应用程序的节点服务器-如何执行?
我有一个非常简单的C#应用程序,它是由前一个人编写的。它使用MD5CryptoServiceProvider计算哈希,使用一些种子字符串生成随机代码 我有一个Node.js服务器正在运行,我想执行这个应用程序并使用输出 我不知道如何在Ubuntu上运行C#,也找不到一个MD5库给出相同的答案 以下是整个功能:运行在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
{
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模块如果您编写一个答案,那么它必须是自包含的,这样即使外部链接中断,读者也能够解决问题。到那时为止,只有答案是不够的。