2011-07-12 7 views
1

je suis dans un besoin d'utiliser l'unix Crypte (sel, clé) fonction dans le code C# pour le cryptage mon mot de passe en utilisant une clé de deux caractères de sel et 8 caractères. En C/C++, nous pouvons le faire mais comment le faire en C#. J'utilise Mono C# dans Linux Ubuntu. Veuillez nous suggérer.Comment appeler la fonction Crypt() mono C#?

Répondre

2

Voici le programme de travail complet qui utilise la crypte unix:

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)); 
    } 
} 

Il imprime résultat de crypting avec la clé et le sel donné. Bien sûr, vous pouvez mettre UnixCrypt dans n'importe quelle autre classe. Pour plus de commodité, vous pouvez également créer une méthode:

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

Il y a une question- similaire Encrypt and decrypt a string

Il y a un article sur Code Project, il enseigne comment vous pouvez créer une classe d'aide.

+0

vous n'êtes pas familier avec la fonction UNIX Crypt() je suppose. Plz google à ce sujet et répondez si vous le pouvez. – vijay

Questions connexes