2016-05-31 6 views
0

私はUniversal Windows Platformの初心者です。私はWebサービスを使用して自分のデータベースにPhp My adminを使用しています。今私はログイン時に打たれます。データベースでは、パスワードはBcryptedまたはHashedです。私はC#またはUWPでそれを解読する方法を知らない。UWPのデータベースパスワード復号

+0

正しい解決策を提案するために役立つだろう、あなたのプロジェクトに関するいくつかの詳細情報ハッシュされる可能性が高い。それを「解き放つ」方法はありません。 – Alex

答えて

1

復号化全く(または「デハッシュ」 - これは本当に可能ではありませんが、その全体的な点の一種です)。代わりにを入力し、ハッシュが一致するかどうかを確認してください。

C#には、ユーザー入力をハッシュするために使用できるさまざまなハッシュアルゴリズム(Windows.Security.CryptographyまたはSystem.Security.Cryptography名前空間にあります)が付属しています。

必要なアルゴリズムがそこで利用できない場合は、代わりにBouncy Castleを試すことができます。

1

あなたは、プログラムで、ユーザーが同じ方法を使用してログインフォームに入れたパスワードを暗号化してから2つのハッシュ結果が

を一致させる場合、私はあることを示唆してチェックする必要があり、ハッシュされたパスワードを解読することはできませんあなたは、ユーザー管理の対象に追加読書の多くを行う、とのためにこれを処理するために、既存の枠組みを選ぶあなた

おそらく人々がそれだ

0
private string Decrypt(string cipherText) 
{ 
    string EncryptionKey = "MAKV2SPBNI99212"; 
    byte[] cipherBytes = Convert.FromBase64String(cipherText); 
    using (Aes encryptor = Aes.Create()) 
    { 
     Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 }); 
     encryptor.Key = pdb.GetBytes(32); 
     encryptor.IV = pdb.GetBytes(16); 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write)) 
      { 
       cs.Write(cipherBytes, 0, cipherBytes.Length); 
       cs.Close(); 
      } 
      cipherText = Encoding.Unicode.GetString(ms.ToArray()); 
     } 
    } 
    return cipherText; 
}