public class SecurityA
{
[DllImport("securityA.dll")]
static extern IntPtr DeCode(IntPtr source, IntPtr key);
[DllImport("securityA.dll")]
static extern IntPtr EnCode(IntPtr source, IntPtr key);
public string enCrypt(string source,string key)
{
string output = string.Empty;
try
{
IntPtr ptrIn = Marshal.StringToHGlobalAnsi(source);
IntPtr ptrInKey = Marshal.StringToHGlobalAnsi(key);
IntPtr ptrRtn = EnCode(ptrIn, ptrInKey);
output = Marshal.PtrToStringAnsi(ptrRtn);
}
catch(Exception e)
{
throw e;
}
return output;
}
public string deCrypt(string source, string key)
{
string strRtn = string.Empty;
try
{
IntPtr ptrIn = Marshal.StringToHGlobalAnsi(source);
IntPtr ptrInKey = Marshal.StringToHGlobalAnsi(key);
IntPtr ptrRtn = DeCode(ptrIn, ptrInKey);
strRtn = Marshal.PtrToStringAnsi(ptrRtn);
}
catch(Exception e)
{
throw e;
}
return strRtn;
}
}
调用
string strCode = sa.enCrypt("test".ToString(),strKey);
string strDeCode = sa.deCrypt(strCode, strKey);