如何调用Crypt()函数mono C#?
我需要在c代码中使用unixCrypt(salt,key)函数进行加密 我的密码使用两个字符的salt和8个字符的密钥。 在C/C++中,我们可以这样做,但如何在C#中这样做呢。 我在ubuntu linux中使用的是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 {
请提出建议。还有一个类似的问题-
有一篇文章介绍如何创建帮助器类。以下是使用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()函数。请用谷歌搜索一下,如果可以的话再回答。