· 8 years ago · Aug 21, 2018, 08:28 PM
1MySQL Encrypt returns true on wrong field with numbers as salt
2CREATE TABLE IF NOT EXISTS `test` (
3 `user` varchar(10) NOT NULL,
4 `pass` varchar(10) NOT NULL
5) ENGINE=MyISAM DEFAULT CHARSET=latin1;
6
7
8INSERT INTO `test` (`user`, `pass`) VALUES
9('user', '11');
10INSERT INTO `test` (`user`, `pass`) VALUES
11('user', '22');
12INSERT INTO `test` (`user`, `pass`) VALUES
13('user', '33');
14INSERT INTO `test` (`user`, `pass`) VALUES
15('user', 'aa');
16
17
18SELECT *
19FROM `test`
20WHERE encrypt( 'user', test.pass )
21
22SELECT *, ENCRYPT('user', pass) FROM test;
23+------+------+-----------------------+
24| user | pass | ENCRYPT('user', pass) |
25+------+------+-----------------------+
26| user | 11 | 11VKs9AZ4WOfc |
27| user | 22 | 22QsW1gRCcd2I |
28| user | 33 | 33PLcxSqvhZnc |
29| user | aa | aaBrLCcg4bKmQ |
30+------+------+-----------------------+
31
32SELECT 'A' = TRUE, '1' = TRUE;
33+------------+------------+
34| 'A' = TRUE | '1' = TRUE |
35+------------+------------+
36| 0 | 1 |
37+------------+------------+