2

aspnet_Usersから実際のパスワードを取得する方法(暗号化されています)

メンバーシップを使用せずに、通常のselectステートメントが必要で、パスワードを実際のパスワードに変換します。例として次のコードを試しました。

static void Main(string[] args)
        {
            using (PMAEntities context = new PMAEntities())
            {

                var Query = from U in context.aspnet_Users
                            join M in context.aspnet_Membership on U.UserId equals M.UserId
                            where U.UserName == "admin"
                            select new
                            {
                                password = (string)M.Password,
                                salt = (string)M.PasswordSalt

                            };
                if (Query != null)
                {
                    // Convert the input password to bit array
                    System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                     byte[] inputpassword=  encoding.GetBytes("123456");
                     byte[] salt = encoding.GetBytes(Query.FirstOrDefault().salt);
                    byte[]commingpass = encoding.GetBytes(Query.FirstOrDefault().password);
                    // Combine the two arrays 
                    byte[] c = new byte[inputpassword.Length + salt.Length];
                     System.Buffer.BlockCopy(inputpassword, 0, c, 0, inputpassword.Length);
                     System.Buffer.BlockCopy(salt, 0, c, inputpassword.Length, salt.Length); 

                    //Comparer 

                    if(c.SequenceEqual(commingpass))
                    {
                        Console.WriteLine("Hiiiiiiiiiii");

                    }
                    Console.ReadLine();


                }






            }
        }

よろしくお願いします

4

1 に答える 1

0

Aristosが言ったように、パスワードを解読しないでください。ユーザーのセキュリティを危険にさらしているので、それは悪い考えです。ユーザーにログインを許可するだけの場合は、別の解決策があります: http ://www.csharpfriends.com/Articles/getArticle.aspx?articleID=344

于 2012-06-04T10:22:12.743 に答える