· 4 years ago · May 18, 2021, 08:42 AM
1CREATE DATABASE IF NOT EXISTS db11552
2 CHARACTER SET = 'utf8'
3 COLLATE = 'utf8_unicode_ci';
4USE db11552;
5DROP TABLE IF EXISTS utenti;
6CREATE TABLE utenti
7(
8 email NVARCHAR(50) NOT NULL PRIMARY KEY,
9 salt VARCHAR(32) NOT NULL,
10 password_hash VARCHAR(64) NOT NULL,
11 cognome NVARCHAR(50) NOT NULL,
12 nome NVARCHAR(50) NOT NULL,
13 data_nascita DATE NOT NULL,
14 img LONGBLOB,
15 tipo NVARCHAR(20)
16
17
18);
19DROP PROCEDURE IF EXISTS nuovoutente;
20DELIMITER //
21CREATE PROCEDURE nuovoutente(
22 param_password VARCHAR(20),
23 param_cognome NVARCHAR(50),
24 param_nome NVARCHAR(50),
25 param_email NVARCHAR(50),
26 param_data DATE,
27 param_img LONGBLOB,
28 param_tipo NVARCHAR(20)
29)
30 DETERMINISTIC
31BEGIN
32 SET @s = MD5(RAND());
33 SET @h = SHA2(CONCAT(@s, param_password), 256);
34 INSERT INTO utenti(salt, password_hash, cognome, nome, email, data_nascita, img, tipo)
35 VALUES (@s, @h, param_cognome, param_nome, param_email, param_data, param_img, param_tipo);
36END //
37DELIMITER ;
38
39
40DROP PROCEDURE IF EXISTS aggPass;
41DELIMITER //
42CREATE PROCEDURE aggPass(
43 param_password VARCHAR(20),
44 param_email NVARCHAR(50)
45)
46 DETERMINISTIC
47BEGIN
48 SET @s = MD5(RAND());
49 SET @h = SHA2(CONCAT(@s, param_password), 256);
50 UPDATE utenti SET salt = @s, password_hash = @h WHERE email = param_email;
51END //
52DELIMITER ;
53
54
55
56
57
58CALL nuovoutente('pwrossi', 'Rossi', 'Mario', 'mario.rossi@gmail.com', '2020-04-01');
59CALL nuovoutente('pwverdi', 'Verdi', 'Carla', 'carla.verdi@gmail.com', '2020-04-01');
60CALL nuovoutente('pwneri', 'Neri', 'Giacomo', 'giacomo.neri@gmail.com', '2020-04-01');
61CALL nuovoutente('1', 'Neri', 'Giacomo', '1@1', '2020-04-01');
62
63
64