MySQL şifre karma algoritması nasıl çalışır?

MySQL, kullanıcı şifrelerini güvenli bir şekilde depolamak için kriptografik karma (hash) kullanır. Şifreleri düz metin olarak saklamak yerine, MySQL bunları tek yönlü matematiksel fonksiyonlarla sabit uzunlukta karma dizelerine dönüştürür. Bir kullanıcı oturum açmaya çalıştığında, MySQL verilen şifreyi karma haline getirir ve depolanan karma ile karşılaştırır. Eşleşirse kimlik doğrulama başarılı olur. Bu yaklaşım, birisi veritabanına erişse bile kullanıcı şifrelerini doğrudan okuyamamasını sağlar.

Modern MySQL Native Password algoritması, SHA-1 karmasını iki kez uygular: SHA1(SHA1(password)). Bu çift karma, ek bir güvenlik katmanı sağlar. Ortaya çıkan 40 karakterlik onaltılık dize, bir yıldız işareti (*) ile ön eklenir ve bunun bir karma şifre olduğunu gösterir; örnek değerler: *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

Araç açıklaması

Bu MySQL Password Hash Generator, MySQL ve MariaDB veritabanlarıyla uyumlu kimlik doğrulama karmaları oluşturur. Herhangi bir şifre girin ve CREATE USER veya ALTER USER gibi SQL ifadelerinde doğrudan kullanılabilecek ilgili karmayı anında üretin. Araç, modern MySQL Native Password formatını (MySQL 4.1 ve sonrası) ve eski sistemler için Legacy Old Password formatını destekler.

Örnekler

MySQL Native Password (4.1+):

  • Girdi: mypassword
  • Çıktı: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • Girdi: mypassword
  • Çıktı: 162eebfb6477e5d3

SQL Kullanımı:

-- Karma şifreyle kullanıcı oluşturma
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- Mevcut kullanıcının şifresini güncelleme
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

Özellikler

  • MySQL Native Password: MySQL 4.1+ ve MariaDB için SHA1(SHA1(password)) karmalarını üretir
  • Legacy Old Password: Geriye dönük uyumluluk için MySQL 4.1 öncesi karma formatını destekler
  • Gerçek zamanlı karma: Yazdıkça karma anında güncellenir

Desteklenen karma formatları

Format Algoritma MySQL Sürümü Çıktı Örneği
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password Özel karma Pre-4.1 6f8c114b58f2ce9e

Güvenlik hususları

MySQL Native Password karması, tüm modern MySQL ve MariaDB kurulumları için önerilen formattır. Old Password formatı güvensiz kabul edilir ve yalnızca yükseltilemeyen eski sistemlerle uyumluluk amacıyla kullanılmalıdır. MySQL 8.0, yeni varsayılan olarak caching_sha2_password'ı tanıttı, ancak mysql_native_password hâlâ geniş çapta desteklenmekte ve yaygın olarak kullanılmaktadır.