如何调用Crypt()函数mono C#?

如何调用Crypt()函数mono C#?,mono,Mono,我需要在c代码中使用unixCrypt(salt,key)函数进行加密 我的密码使用两个字符的salt和8个字符的密钥。 在C/C++中,我们可以这样做,但如何在C#中这样做呢。 我在ubuntu linux中使用的是Mono C。 请提出建议。还有一个类似的问题- 有一篇文章介绍如何创建帮助器类。以下是使用unix crypt的完整工作程序: using System; using System.Runtime.InteropServices; public class Test {

我需要在c代码中使用unixCrypt(salt,key)函数进行加密 我的密码使用两个字符的salt和8个字符的密钥。 在C/C++中,我们可以这样做,但如何在C#中这样做呢。 我在ubuntu linux中使用的是Mono C。
请提出建议。

还有一个类似的问题-


有一篇文章介绍如何创建帮助器类。

以下是使用unix crypt的完整工作程序:

using System;
using System.Runtime.InteropServices;

public class Test
{   
    [DllImport("libcrypt.so", EntryPoint = "crypt", ExactSpelling = true, CharSet = CharSet.Ansi)]
    public static extern IntPtr UnixCrypt([MarshalAs(UnmanagedType.LPStr)]string key, [MarshalAs(UnmanagedType.LPStr)]string salt); 

    public static void Main()
    {
        var ptrResult = UnixCrypt("test", "test2");
        Console.WriteLine(Marshal.PtrToStringAnsi(ptrResult));
    }
}
它用给定的密钥和盐打印加密结果。当然,您可以将UnixCrypt放在任何其他类中。为方便起见,您还可以创建方法:

public static string MyCrypt(string key, string salt)
{
    return Marshal.PtrToStringAnsi(UnixCrypt(key, salt));
}

我想您不熟悉UNIX Crypt()函数。请用谷歌搜索一下,如果可以的话再回答。