現在の位置: ホーム> 最新記事一覧> PHPおよびSQLite実装パスワードの暗号化と検証:包括的なガイド

PHPおよびSQLite実装パスワードの暗号化と検証:包括的なガイド

M66 2025-06-13

導入

現代のインターネット時代では、パスワードのセキュリティが重要です。ユーザーのプライバシーを保護するために、ウェブサイトは通常、パスワードの暗号化と検証を通じてユーザーパスワード情報を保存および処理します。この記事では、PHPとSQLiteを使用してこの機能を実装する方法について説明します。

1。パスワード暗号化

パスワード暗号化は、ユーザーが入力したプレーンテキストパスワードを、読み取れないランダム文字列の文字列に変換することです。データベースデータが漏れている場合でも、パスワードはプレーンテキストでは公開されません。 PHPでは、password_hash()関数を使用してパスワード暗号化を実装できます。

 
// パスワード暗号化の例
$password = "123456";
$hash = password_hash($password, PASSWORD_DEFAULT);

上記のコードでは、$パスワードはユーザーが入力したプレーンテキストパスワードを表し、$ hashは暗号化されたパスワードです。関数password_hash()は、現在のデフォルトアルゴリズムに基づいて暗号化されたパスワードを生成します。

2。パスワード検証

ユーザーがログインすると、入力されたパスワードがデータベースに保存されている暗号化されたパスワードと一致して、ユーザーのIDの正当性を確保することを確認する必要があります。 PHPでは、検証にPassword_verify()関数を使用できます。

 
// パスワード検証の例
$password = "123456";
$hash = "$2y$10$KZxpkRfkBrmJr9X11qaIjeJf1cgjF9OXmcruE/YqLqKx6F79KRjlC";

if (password_verify($password, $hash)) {
    echo "パスワード検証が合格しました";
} else {
    echo "パスワード検証に失敗しました";
}

この例では、$パスワードはユーザーが入力したプレーンテキストパスワードであり、$ hashはデータベースから取得された暗号化されたパスワードです。 password_verify()関数を使用して、パスワードが一致するかどうかを判断できます。

3. SQLiteデータベースを使用してパスワードを保存します

この例では、SQLiteデータベースを使用してユーザーのパスワード情報を保存します。 SQLiteは、外部データベースサーバーを必要とせず、小規模プロジェクトや個人使用に適した軽量な組み込みデータベースです。

まず、SQLiteデータベースを作成し、パスワード情報を保存するためにユーザーテーブルを設定します。

 
// 作成するSQLiteデータベース
$db = new SQLite3("mydb.db");

// 作成する用户表
$query = "CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT NOT NULL,
    password TEXT NOT NULL
);";
$db->exec($query);

次に、暗号化されたパスワードをデータベースに保存します。

 
// 将密码存储到データベース
$password = "123456";
$hash = password_hash($password, PASSWORD_DEFAULT);

$query = "INSERT INTO users (username, password) VALUES ('user1', '$hash')";
$db->exec($query);

パスワードの暗号化されたストレージを完了した後、ユーザーはログインするときにパスワード検証を実行する必要があります。

 
// ユーザーログイン
$username = "user1";
$password = "123456";

// 从データベース中获取密码
$query = "SELECT password FROM users WHERE username = '$username'";
$result = $db->querySingle($query);

// パスワードを確認します
if (password_verify($password, $result)) {
    echo "正常にログインします";
} else {
    echo "ログインに失敗しました";
}

// 关闭データベース连接
$db->close();

これらのコードを使用して、ユーザーパスワードの暗号化と検証機能を実装して、ユーザーパスワードのセキュリティを確保し、機密情報の漏れを回避できます。

結論は

PHPとSQLiteは、パスワードを暗号化および検証するためのシンプルで効率的な方法を提供します。これらの機能を合理的に使用することにより、Webサイトのセキュリティを効果的に改善し、ユーザーのプライバシーを保護できます。