A while back I wrote a short post that checks for SQL Server SQL logins with weak passwords. Here’s the equivalent for Postgresql (it’s only checking the MD5 hash algorithm at present):
CREATE TEMPORARY TABLE temp_CommonPasswords ( Password varchar (30) not null primary key ) ON COMMIT DROP ; INSERT INTO temp_CommonPasswords( Password ) VALUES ( '' ), ( '123' ), ( '1234' ), ( '12345' ), ( '123456' ), ( '1234567' ), ( '12345678' ), ( '123456789' ), ( '1234567890' ), ( '987654321' ), ( '123qwe' ), ( 'mynoob' ), ( '18atcskd2w' ), ( '55555' ), ( '555555' ), ( '3rjs1la7qe' ), ( 'google' ), ( 'zxcvbnm' ), ( '000000' ), ( '1q2w3e' ), ( '1q2w3e4r5t' ), ( '1q2w3e4r' ), ( 'qwerty' ), ( 'qwerty123' ), ( 'password' ), ( 'p@ssword' ), ( 'p@ssw0rd' ), ( 'password1' ), ( 'p@ssword1' ), ( 'password123' ), ( 'passw0rd' ), ( '111111' ), ( '1111111' ), ( 'abc123' ), ( '666666' ), ( '7777777' ), ( '654321' ), ( '123123' ), ( '123321' ), ( 'iloveyou' ), ( 'admin' ), ( 'nimda' ), ( 'welcome' ), ( 'welcome!' ), ( '!@#$%^&*' ), ( 'aa123456' ), ( 'lovely' ), ( 'sunshine' ), ( 'shadow' ), ( 'princess' ), ( 'solo' ), ( 'football' ), ( 'monkey' ), ( 'Monkey' ), ( 'charlie' ), ( 'donald' ), ( 'Donald' ), ( 'dragon' ), ( 'Dragon' ), ( 'trustno1' ), ( 'letmein' ), ( 'whatever' ), ( 'hello' ), ( 'freedom' ), ( 'master' ), ( 'starwars' ), ( 'qwertyuiop' ), ( 'Qwertyuiop' ), ( 'qazwsx' ), ( 'corona' ), ( 'woke' ), ( 'batman' ), ( 'superman' ), ( 'login' ); SELECT usename FROM pg_shadow cross join lateral ( Select Password from temp_CommonPasswords) c WHERE 'md5' ||md5(c. Password ||usename) = pg_shadow.passwd UNION ALL SELECT usename FROM pg_shadow WHERE passwd = 'md5' ||md5(usename||usename) |