Fórum Root.cz
Hlavní témata => Server => Téma založeno: SQL 23. 02. 2018, 11:09:46
-
Ahoj, mam vytvorenu tabulku v MySQL:
CREATE TABLE `virtual_users` (
`id` int(11) NOT NULL auto_increment,
`domain_id` int(11) NOT NULL,
`password` varchar(106) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Do tabulky vkladam uzivatelov s heslom.
INSERT INTO `mailserver`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
('2', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
Moja otazka je, aky by bol rozdiel, keby to vkladam sposobom
('1', '1', MD5('password'), 'email1@example.com')
Aky je v tom rozdiel?
Popripade ak by mi mohol niekto povedat, co znamena/robi ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
-
Předně se vyser na postfix a raději si nainstaluj exim4.
-
Předně se vyser na postfix a raději si nainstaluj exim4.
A můžeš nám ostatním, co to nechápeme, napsat proč?
Já třeba Postfix používám a jsem spokojený. Nicméně, třeba změním názor.
K dotazu:
Nechápu, proč se trápíš s příkazy a raději nepoužiješ PostfixAdmin, kde je vše za tebe vyřešeno.
-
K dotazu:
Nechápu, proč se trápíš s příkazy a raději nepoužiješ PostfixAdmin, kde je vše za tebe vyřešeno.
Pretože by som sa rad niečo priučil nez to vyklikal cez klikatko...
-
Do tabulky vkladam uzivatelov s heslom.
INSERT INTO `mailserver`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
('1', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'),
('2', '1', ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
Moja otazka je, aky by bol rozdiel, keby to vkladam sposobom
('1', '1', MD5('password'), 'email1@example.com')
Aky je v tom rozdiel?
V prvním případě se do databáze ukládá osolený SHA-512 hash, ve formátu funkce crypt(3) (http://man7.org/linux/man-pages/man3/crypt.3.html). V druhém případě se heslo pouze hashuje MD5 bez soli, což je velmi špatný nápad. Taky to nejspíš nebude fungovat, pokud Postfix očekává záznam ve formátu crypt.
Popripade ak by mi mohol niekto povedat, co znamena/robi ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
- RAND() - vygeneruje náhodné číslo (http://"https://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html#function_rand")
- SHA(RAND()) - Spočítá SHA-1 náhodného čísla (https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_sha1)
- SUBSTRING(SHA(RAND()), -16) - Odřízne z výsledku posledních 16 číslic (https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substring)
- CONCAT('$6$', …) - Připojí na začátek řetězec $6$ (https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_concat)
- ENCRYPT('password', …) - Zavolá knihovní funkci crypt(3) (https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_encrypt)