kiz
Banned
- Katılım
- 18 Ağu 2024
- Mesajlar
- 326
- Beğeniler
- 82
- Yaş
- 25
Merhaba aşırı basic bir auth ile geldim
O kadar basic ki Passwordu bile
databaseye hashlamadan koyuyor
Database adını değiştirdikten sonra kullanabilirsiniz
Gerekli NuGet Paketleri
MySql.Data
Kod:
O kadar basic ki Passwordu bile
databaseye hashlamadan koyuyor
Database adını değiştirdikten sonra kullanabilirsiniz
Gerekli NuGet Paketleri
MySql.Data
Kod:
C#:
using MySql.Data.MySqlClient;
using System;
class Program
{ //ALTTA GÖRDÜĞÜN YERE DATABASE ADI
// | |
static string connectionString = "Server=127.0.0.1; Database=authdbs; Uid=root; Pwd=;";
static void Main(string[] args)
{
Console.WriteLine("1. Giriş Yap\n2. Kayıt Ol");
string choice = Console.ReadLine();
if (choice == "1")
{
Console.WriteLine("Kullanıcı Adınızı Girin:");
string username = Console.ReadLine();
Console.WriteLine("Şifrenizi Girin:");
string password = Console.ReadLine();
if (AuthenticateUser(username, password))
{
Console.WriteLine("Giriş Başarılı!");
}
else
{
Console.WriteLine("Geçersiz kullanıcı adı veya şifre.");
}
}
else if (choice == "2")
{
Console.WriteLine("Yeni Kullanıcı Adınızı Girin:");
string username = Console.ReadLine();
Console.WriteLine("Yeni Şifrenizi Girin:");
string password = Console.ReadLine();
if (RegisterUser(username, password))
{
Console.WriteLine("Kayıt başarılı! Giriş yapabilirsiniz.");
}
else
{
Console.WriteLine("Kullanıcı adı zaten mevcut.");
}
}
else
{
Console.WriteLine("Geçersiz seçenek.");
}
}
static bool AuthenticateUser(string username, string password) //grhax
{
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
conn.Open();
string query = "SELECT Password FROM Users WHERE Username = @Username";
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@Username", username);
var result = cmd.ExecuteScalar();
if (result != null)
{
string storedPassword = result.ToString();
if (password == storedPassword)
{
return true;
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("Hata: " + ex.Message);
}
}
return false;
}
static bool RegisterUser(string username, string password)
{
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
conn.Open();
string checkQuery = "SELECT COUNT(*) FROM Users WHERE Username = @Username";
using (MySqlCommand checkCmd = new MySqlCommand(checkQuery, conn))
{
checkCmd.Parameters.AddWithValue("@Username", username);
int userCount = Convert.ToInt32(checkCmd.ExecuteScalar());
if (userCount > 0)
{
return false;
}
}
string insertQuery = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)";
using (MySqlCommand insertCmd = new MySqlCommand(insertQuery, conn))
{
insertCmd.Parameters.AddWithValue("@Username", username);
insertCmd.Parameters.AddWithValue("@Password", password);
int rowsAffected = insertCmd.ExecuteNonQuery();
return AuthenticateUser(username, password);
}
}
catch (Exception ex)
{
Console.WriteLine("Hata: " + ex.Message);
return false;
}
}
}
}
İsteyenler için hash kodu (En alta ekleyebilirsiniz)
C#:
static string HashPassword(string password)
{
using (SHA256 sha256 = SHA256.Create())
{
byte[] hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(password));
return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
}