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
  • Şifre görünürlüğü geçişi: Şifre girişini gösterir veya gizler, daha kolay veri girişi sağlar
  • Tek tıkla kopyala: Oluşturulan karmayı panoya hızlıca kopyalar

Kullanım senaryoları

  • Dağıtım betiklerinde önceden karmalanmış şifrelerle MySQL kullanıcı hesapları oluşturma
  • Şifre karmalarını koruyarak MySQL veritabanları arasında kullanıcıları taşıma
  • MySQL kimlik doğrulama yapılandırmalarını test etme ve doğrulama
  • MySQL uyumlu uygulamalar için şifre karmaları üretme
  • Beklenen ve gerçek karmaları karşılaştırarak kimlik doğrulama sorunlarını giderme

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.