c#调用des64.dll进行加密解密
[DllImport("des64.dll")]
private static extern void b64_des(StringBuilder in_str, StringBuilder out_str, string key, int lenth, uint option);
///第一个参数就是你要进行加密解密的字符串,第二个参数就是要输出的字符串,第三个是指定参数,第四个是字符串长度,最后一个是加密解密参数。0加密 1解密。
[DllImport("des64.dll")]
private static extern int b64_size(int lenth, uint option);
/// <summary>
/// <param name="m_Str"></param>
/// <param name="m_key"></param>
/// <param name="flag"></param>
/// <returns></returns>
/// </summary>
public static string KeyOrNoKey(string m_Str,string m_key,uint flag)
{
int outLen = b64_size(m_Str.Length, flag);
StringBuilder Result = new StringBuilder(0xff);
Result.Capacity = outLen;
Result.Length = outLen;
StringBuilder Source = new StringBuilder(m_Str);
b64_des(Source, Result,m_key, m_Str.Length, flag);
string s = Result.ToString().Trim();
return Result.ToString().Trim();
}
这里有个地方要注意。就是为什么要用stringbuilder。因为那个参数是可变的。
private static extern void b64_des(StringBuilder in_str, StringBuilder out_str, string key, int lenth, uint option);
///第一个参数就是你要进行加密解密的字符串,第二个参数就是要输出的字符串,第三个是指定参数,第四个是字符串长度,最后一个是加密解密参数。0加密 1解密。
[DllImport("des64.dll")]
private static extern int b64_size(int lenth, uint option);
/// <summary>
/// <param name="m_Str"></param>
/// <param name="m_key"></param>
/// <param name="flag"></param>
/// <returns></returns>
/// </summary>
public static string KeyOrNoKey(string m_Str,string m_key,uint flag)
{
int outLen = b64_size(m_Str.Length, flag);
StringBuilder Result = new StringBuilder(0xff);
Result.Capacity = outLen;
Result.Length = outLen;
StringBuilder Source = new StringBuilder(m_Str);
b64_des(Source, Result,m_key, m_Str.Length, flag);
string s = Result.ToString().Trim();
return Result.ToString().Trim();
}
这里有个地方要注意。就是为什么要用stringbuilder。因为那个参数是可变的。