Creation de compte securisee

Le pseudo est garde en clair pour l'affichage dans le jeu. Le prenom, le nom, l'email et le role sont chiffres avant insertion. Le mot de passe est stocke sous forme de hash.

Pseudo Visible en clair pour identifier le joueur dans la partie.
Donnees chiffrees Prenom, nom, email et role sont chiffres avant stockage.
Mot de passe Stocke en hash via password_hash, jamais en clair.
Base cible belote-ver-0-3

Creer un compte

Toutes les donnees restent protegees en base sauf le pseudo.

Code SQL pour la base

Execute ce schema dans la base belote-ver-0-3.

CREATE TABLE comptes (
	id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
	pseudo VARCHAR(50) NOT NULL,
	first_name_encrypted TEXT NOT NULL,
	last_name_encrypted TEXT NOT NULL,
	email_encrypted TEXT NOT NULL,
	email_hash CHAR(64) NOT NULL,
	password_hash VARCHAR(255) NOT NULL,
	role_encrypted TEXT NOT NULL,
	created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
	UNIQUE KEY uq_comptes_pseudo (pseudo),
	UNIQUE KEY uq_comptes_email_hash (email_hash)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;