2011-07-12 6 views
1

私は暗号化のためにC#のコードでCrypt(塩、キー)の機能を使用する必要があります 私のパスワードは2文字の塩と8文字のキーを使用しています。 C/C++では、これを行うことができますが、C#でこれを行う方法です。 ubuntu linuxでMono C#を使用しています。 お勧めします。Crypt()関数monoを呼び出す方法C#?

答えて

2

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

それは、与えられたキーと塩でcryptingの結果を出力します。もちろんUnixCryptを他のクラスに入れることもできます。便宜上、メソッドを作成することもできます:

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

同様のquestion- Encrypt and decrypt a string

は、それはあなたがヘルパークラスを作成する方法を教えてCode Project上の記事は、ありますがあります。ここで

+0

あなたはUNIX Crypt()関数に精通していません。 plz googleについてそれをして、できる場合は答えてください。 – vijay

関連する問題