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 十六进制作为字符串都应该有效。
您当然可以简化它,但这只是为了证明简单地转换代码是多么容易。
我有一个非常简单的 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 十六进制作为字符串都应该有效。
您当然可以简化它,但这只是为了证明简单地转换代码是多么容易。