时空CLR解密登陆密码源码

public static SqlString GetPwd(string code )
    {
        string txt = code;
        if(string.IsNullOrEmpty(txt))
        {
            return "口令为空";
        }
        string[] keyA = new string[6] { "wa6j1c", "fblrk7", "mg9q0s", "vu3zth", "po4xy2", "ni5d8e" };
        string[] keyB = new string[6] { "ke3wms", "jnx9i8", "dpqzl6", "vyg1bh", "7a4c2f", "u5rto0" };
        string str , str1 , str2 ;
        int x, y, p;


        for (x = 0; x < txt.Length; x++)
        {
            for (y = 1; y <= 6; y++)
            {
                string temp = txt.Substring(x, 1);
                string temp2 = keyA[y - 1];
                p = temp2.IndexOf(temp) + 1;
                if (p > 0)
                {
                    str1 = str1 + (y - 1).ToString();
                    str2 = (p - 1).ToString() + str2;
                    break;
                }

            }

        }

        str = str1 + str2;
        x = 0;
        for (p = 1; p <= 3; p++)
        {
            x = x * 6 + Convert.ToInt32(str.Substring(p - 1, 1));

        }
        str = str.Substring(3, x);
        if (str.Length % 2 == 1)
        {
            return "解码错误";
        }
        string restr ;
        for (p = 1; p <= str.Length / 2; p++)
        {
            restr = restr + keyB[(int)Convert.ToChar(str.Substring(p - 1, 1)) - (int)Convert.ToChar("0")].Substring
                ((int)Convert.ToChar(str.Substring(str.Length - p, 1)) - (int)Convert.ToChar("0"),
                1);
        }
        return new SqlString (restr);
    }

时空CLR登陆密码解密源码   适用于SQL SERVER2005 以上版本

猜你喜欢

转载自www.cnblogs.com/jijm123/p/10535915.html