|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
//解密使用方法: Ddcode7(用户名加密后字符, 数据库密码符)
private string Decode7(string EnStr, string s)
{
int KeyLen, i, n1, n2;
char FStr1, FStr2, FStr3, FStr4;
string Result = "";
if (EnStr == "") { MessageBox.Show("EnStr=" + EnStr.ToString()); return Result; }
if (s.Length < 32) //少于32位,错误
{
Result = "ERROR!";
return Result;
}
if (s == EnStr) { return Result; }
//检查密码有几位
KeyLen = 0;
for (i = 28; i >=1; i--) //可以至少28位密码
{
if (s[i] != EnStr[i])
{
KeyLen = i;
break;
}
}
if (KeyLen == 0) { return Result; } //全部一样.退出
for (i = KeyLen; i >=0 ; i--)
{
if (i <= 3)
{
FStr1 = EnStr[i];
//FStr2 = EnStr[32 - 4 + i];
FStr3 = s[i];
FStr4 = s[31-4+i]; //加密位置1 标识用
n1 = Convert.ToInt32(FStr1)^Convert.ToInt32(FStr3);
// MessageBox.Show(n1.ToString());
n2 = ((Convert.ToInt32(FStr4)-32)%16);
Result = Convert.ToChar((n2 * 16) + 32 + n1)+Result;
FStr4 = Convert.ToChar((Convert.ToInt32(FStr4)%16)+32);
//s = s.Substring(1, 32-4+i-1) + FStr4 + s.Substring(32-4+i+1, 4-i);
s = s.Substring(0, 31 - 4 + i - 1) + FStr4 + s.Substring(31 - 4 + i + 1, 3 - i);
}
else
{
FStr1 = EnStr[i];
//FStr2 =EnStr [i-4];
FStr3 = s[i];
FStr4 = s[i-4];
// MessageBox.Show(EnStr.Length.ToString() + "****" + i.ToString() + "***--" + FStr3.ToString());
n1 = Convert.ToInt32(FStr3)^Convert.ToInt32(FStr1);
//MessageBox.Show(n1.ToString ());
n2 = ((Convert.ToInt32(FStr4)-32)%16); //检查是什么类型
Result = Convert.ToChar((n2*16)+32+n1)+Result;
FStr4 = Convert.ToChar((Convert.ToInt32(FStr4)%16)+32);
//MessageBox.Show(s.Substring(1, i- 4-1).ToString());
//s = s.Substring(1,i-4-1) + FStr4 + s.Substring(i-4+1,32-i+4);
s = s.Substring(0, i - 3 - 1) + FStr4 + s.Substring(i - 5 + 1, 31 - i + 4);
}
}
return Result;
}
|
|