Akhirnya password user BlogEngine.NET dienkripsi juga. Hampir dua tahun pake BlogEngine.NET sejak versi 0.8, password dalam file XML disimpan dalam plain text. Setelah versi terbaru (1.4) akhirnya password dienkrip dengan algoritma SHA256. Kita bisa intip kode enkripsi password yang digunakan BlogEngine.NET sebagai berikut.
/// <summary>
/// Encrypts a string using the SHA256 algorithm.
/// </summary>
public static string HashPassword(string plainMessage)
{
byte[] data = Encoding.UTF8.GetBytes(plainMessage);
using (HashAlgorithm sha = new SHA256Managed())
{
byte[] encryptedBytes = sha.TransformFinalBlock(data, 0, data.Length);
return Convert.ToBase64String(sha.Hash);
}
}
Pada file User.xml yang sebelumnya tidak dienkripsi sekarang sudah terenkripsi seperti terlihat pada kode berikut.
<Users>
<User>
<UserName>Admin</UserName>
<Password>jGl25bVBBBW96Qi9Te4V37Fnqchz/Eu4qB9vKrRIqRg=</Password>
<Email>post@example.com</Email>
<LastLoginTime>2007-12-05 20:46:40</LastLoginTime>
</User>
<User>
<UserName>mads</UserName>
<Password>JXMu9HdxF4mOBSAx4DrWOPAzJt58v+/sHfrxoko0m0M=</Password>
<Email>mads@zyb.dk</Email>
<LastLoginTime>2008-07-07 19:11:41</LastLoginTime>
</User>
</Users>
Seperti terlihat pada kode di atas bahwa password telah terenkripsi. Teks password sebenarnya tidak dapat terbaca. Password standar BlogEngine.NET untuk user Admin adalah "admin" tanpa tanda kutip.
Akhirnya bisa lebih tenang karena password saya tidak bisa diintip lagi oleh admin hosting. Sorry ya mas Rudy... Hehehe...