• 05-07-2021, 02:33:48
    #1
    Merhaba bir veri tabanından kullanıcı adı ve şifre çekiyorum buraya kadar her şey normal.
    Fakat sitede şifreleme sha256 olarak şifreliyor
    Ben programda bu şifreyi nasıl okutacağım?
  • 05-07-2021, 02:41:36
    #2
    tam olarak ne yapmak istiyorsunuz ? okutmaktan kastınız dışarıdan bir veri girdirip veri tabanındaki sha256 ile karşılaştırmak mı ? yoksa direkt sha256 ların şifrelenmeden önceki hallerini bulmak mı ?
  • 05-07-2021, 02:43:16
    #3
    ssyazilim adlı üyeden alıntı: mesajı görüntüle
    tam olarak ne yapmak istiyorsunuz ? okutmaktan kastınız dışarıdan bir veri girdirip veri tabanındaki sha256 ile karşılaştırmak mı ? yoksa direkt sha256 ların şifrelenmeden önceki hallerini bulmak mı ?
    Kullanıcı siteye kayıt olacak.
    Sonra yaptığım programa girip kayıt olduğu bilgiler ile giriş yapacak.
    Yani mysqlden verileri okuyup eşleyecek.
    Fakat dediğim gibi sha olduğu için sıkıntı çıkarıyor.
  • 05-07-2021, 02:54:12
    #4
    zNightLastTR adlı üyeden alıntı: mesajı görüntüle
    Kullanıcı siteye kayıt olacak.
    Sonra yaptığım programa girip kayıt olduğu bilgiler ile giriş yapacak.
    Yani mysqlden verileri okuyup eşleyecek.
    Fakat dediğim gibi sha olduğu için sıkıntı çıkarıyor.
    he iyi o halde bende sha256 ları kırmaya çalışıyorsunuz sanıp şaşırmıştım mumkun değil cunku.


    yapmanız gereken kullanıcının girdiği şifreyi sha256 hash e çevirip veri tabanındaki sha256 şifre satırıyla karşılaştırma yapmak. kullanıcının girdiğini alttaki fonksiyona gönderip hash i alın.

      static string ComputeSha256Hash(string rawData)  
            {  
                // Create a SHA256  
                using (SHA256 sha256Hash = SHA256.Create())  
                {  
                    // ComputeHash - returns byte array  
                    byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData));  
      
                    // Convert byte array to a string  
                    StringBuilder builder = new StringBuilder();  
                    for (int i = 0; i < bytes.Length; i++)  
                    {  
                        builder.Append(bytes[i].ToString("x2"));  
                    }  
                    return builder.ToString();  
                }  
            }
    sonra bunun gibi bir yapıyla sql cumlesini işleyip while ile basit bi denetim yapabilirsin.

    try
    {
        using(SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=QABase;Integrated Security=True")
        {
            conn.open();
            using(SqlCommand myCommand = new SqlCommand("select * from tablo where veritabanindakisha256= @kullanicidanalinansha256", conn))
            {
                myCommand.Parameters.AddWithValue("kullanicidanalinansha256",ComputeSha256Hash(kullanicininsifreyigirdigi_textbox));
                using(myReader = myCommand.ExecuteReader())
                {
                     while (myReader.Read())
                     {
                     bla bla bla
                     }
                }
            }
        }
    }
    catch(Exception e)
    {
        System.Console.WriteLine(e.ToString());
        throw; //Rethrow exception to let caller know that something went wrong
    }