Как вызвать функцию Crypt () mono C #? - PullRequest
1 голос
/ 12 июля 2011

Мне нужно использовать Unix Crypt (соль, ключ) функция в коде c # для шифрования мой пароль, используя двухсимвольную соль и 8-значный ключ. В C / C ++ мы можем сделать это, но как это сделать в C #. Я использую Mono C # в Ubuntu Linux. Пожалуйста, предложите.

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Вот полная рабочая программа, которая использует 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));
}
0 голосов
/ 12 июля 2011

Есть похожий вопрос- Шифрование и дешифрование строки

Существует статья Code Project , в которой рассказывается, как создать вспомогательный класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...