ASP サイトを PHP に変換する作業を行っています。このサイトはサードパーティの API を使用しています。サードパーティ API には、データベースに保存されたユーザー ID と各ユーザーのパスワードが必要です。ASP サイトはパスワードをデータベースに保存せず、代わりに次の関数を使用して毎回 UserID に基づいてパスワードを取得していました。
public static string GetLmsUserPassword(int userId)
{
var hash = userId.ToString().MD5();
return hash.Substring(15, 4) + hash.Substring(4, 4);
}
PHPでは、次のように記述しました。
function lms_password($user_id) {
$hash = md5((int)$user_id);
$password = substr($hash,15,4).substr($hash,4,4);
return $password;
}
ただし、PHP で生成されたパスワードが ASP のパスワードと一致しないようです。ASPがmd5を別の方法で行うかどうか疑問に思っていますか?
UserID の例は、実際には数字ではなく文字列です: 22E21F5D-7979-467E-928D-4EFCC323BDCB