RunUO — phpBB Account ve Şifreleme Sistemi
UO-Developer.com — accounts.xml, MD5 uyumu, AccountHandler ve Account.cs düzenlemesiRunUO sunucusu ile phpBB forumunu tek hesapla kullanmak için şifreleme yöntemlerinin aynı olması gerekir. phpBB 2 forumu MD5 kullanır; RunUO tarafını da buna göre ayarlayıp hash çıktı formatını eşleştireceğiz.
Konu: RunUO I / II şifreleme türleri + phpBB MD5 uyumu | Seviye: Orta – İleri
İlgili: phpBB Account ve Şifreleme Sistemi | RunUO phpBB2 Web Üyelik Sistemi | RunUO Dökümanları
İçindekiler
- Gereksinimler
- accounts.xml — şifreleme türleri
- AccountHandler.cs — MD5 moduna alma
- phpBB ile RunUO hash farkı
- Account.cs — HashMD5 düzenlemesi
- Kontrol listesi ve uyarılar
1. Gereksinimler
- Web sitenizi sunucu makinesinde tutmayacaksanız ODBC, MySQL ve PHP destekleyen bir hosting paketi alın.
- Web sitesini sunucu makinesinde barındıracaksanız MySQL ODBC sürücüsünü kurun: MySQL Connector/ODBC 3.51
- RunUO kaynak/script klasörüne erişim — derleme sonrası sunucuyu yeniden başlatma
- phpBB 2 kurulu forum — bu rehber phpBB 2'nin düz MD5 şifrelemesine göredir
Yedek: Düzenlemeden önce Saves/Accounts/accounts.xml dosyasının ve Scripts/Accounting/ klasörünün yedeğini alın.
2. Şifreleme Türleri — accounts.xml
RunUO hesap şifreleri Saves/Accounts/accounts.xml içinde saklanır. RunUO I'de 2, RunUO II'de 3 farklı yöntem vardır:
Plain Password — Girilen şifre olduğu gibi kaydedilir; güvenlik algoritması yoktur.
<password>sifreniz</password>Crypt Password (MD5) — Şifre MD5 ile hashlenir. phpBB 2 ile uyum için bu mod kullanılır.
<cryptPassword>9E-2A-47-DA-76-77-C2-07-52-F2-FF-DA-88-2A-BD-6B</cryptPassword>NewCrypt Password (SHA1) — Kullanıcı adı + şifre birleştirilerek SHA1 hash uygulanır. Yalnızca RunUO II'de kullanılır; phpBB MD5 ile uyumlu değildir.
<newCryptPassword>B7-FA-36-47-1E-3E-5A-5D-F5-F2-FF-D7-1D-DE-C2-2E-8D-9D-61-98</newCryptPassword>3. AccountHandler.cs — MD5 Moduna Alma
phpBB forumunda MD5 şifreleme kullanıldığı için RunUO sunucusunu da Crypt (MD5) moduna almanız gerekir.
Dosya yolu:
Scripts/Accounting/AccountHandler.csRunUO I için:
public static bool ProtectPasswords = true;RunUO II için:
public static PasswordProtection ProtectPasswords = PasswordProtection.Crypt;Varsayılan RunUO II kurulumunda genelde PasswordProtection.NewCrypt ayarlıdır — phpBB entegrasyonu için Crypt yapın. Plain metin için RunUO I'de false, RunUO II'de PasswordProtection.None kullanılır; production ortamında önerilmez.
Değişiklikten sonra RunUO'yu yeniden derleyip sunucuyu restart edin.
4. phpBB ile RunUO Hash Format Farkı
Aynı şifre için MD5 algoritması aynı olsa da RunUO varsayılan çıktısı phpBB ile birebir eşleşmez:
phpBB MD5 örneği — küçük harf, tire yok:
9e2a47da7677c20752f2ffda882abd6bRunUO varsayılan MD5 örneği — büyük harf, tireli:
9E-2A-47-DA-76-77-C2-07-52-F2-FF-DA-88-2A-BD-6BBu farkı kapatmadan forum ve oyun hesapları aynı şifreyle giriş yapamaz. Çözüm: Account.cs içindeki HashMD5 fonksiyonunun dönüş formatını phpBB ile aynı hale getirmek.
5. Account.cs — HashMD5 Düzenlemesi
Dosya yolu:
Scripts/Accounting/Account.csHashMD5 fonksiyonunu bulun. ComputeHash sonrası dönüş kısmını aşağıdaki gibi değiştirin — tire ve büyük harf yerine phpBB uyumlu küçük harf hex:
public static string HashMD5( string phrase )
{
if ( m_MD5HashProvider == null )
m_MD5HashProvider = new MD5CryptoServiceProvider();
if ( m_HashBuffer == null )
m_HashBuffer = new byte[256];
int length = Encoding.ASCII.GetBytes( phrase, 0, phrase.Length > 256 ? 256 : phrase.Length, m_HashBuffer, 0 );
byte[] hashed = m_MD5HashProvider.ComputeHash( m_HashBuffer, 0, length );
// phpBB uyumu — kucuk harf hex, tire yok
string hexaHash = "";
foreach ( byte b in hashed )
{
hexaHash += String.Format( "{0:x2}", b );
}
return hexaHash;
}Bu düzenleme sonrası yeni oluşturulan veya şifresi değiştirilen RunUO hesapları phpBB ile aynı hash formatını üretir.
Önemli: Daha önce tireli cryptPassword ile kaydedilmiş eski hesaplar otomatik dönüşmez. Ya kullanıcılar şifre sıfırlamalı ya da accounts.xml / phpBB users tablosu elle güncellenmelidir.
6. Test Adımları
- AccountHandler.cs — Crypt modu, derle, restart
- Account.cs — HashMD5 düzenlemesi, derle, restart
- RunUO'da test hesabı oluştur — accounts.xml'de cryptPassword satırına bak
- Aynı kullanıcı adı/şifre ile phpBB'de kayıt ol veya giriş dene
- Hash değerlerinin küçük harf ve tiresiz olduğunu doğrula
Web üyelik entegrasyonunun tam kurulumu için: RunUO phpBB2 Web Üyelik Sistemi
7. Özet
- Plain — düz metin — güvensiz
- Crypt (MD5) — phpBB 2 ile uyumlu mod — AccountHandler'da seçin
- NewCrypt (SHA1) — phpBB MD5 ile uyumsuz — devre dışı bırakın
- HashMD5 — phpBB formatına çevirmek için Account.cs düzenleyin
- Eski hesaplar — yeni format için şifre sıfırlama gerekebilir

