我需要在c#代码中使用unix Crypt(salt,key)函数进行加密 我的密码使用两个字符的盐和8个字符的密钥。 在C / C ++中,我们可以这样做但是如何在C#中执行此操作。 我在ubuntu linux中使用 Mono C#。 请建议。
答案 0 :(得分: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));
}
}
用给定的密钥和盐打印加密结果。当然你可以将UnixCrypt放在任何其他类中。为方便起见,您还可以创建方法:
public static string MyCrypt(string key, string salt)
{
return Marshal.PtrToStringAnsi(UnixCrypt(key, salt));
}
答案 1 :(得分:0)
有一个类似的问题 - Encrypt and decrypt a string
有一篇关于Code Project的文章,它教你如何创建一个帮助类。