Scramble used for mysql_native_password
(password, message)
| 28 | |
| 29 | |
| 30 | def scramble_native_password(password, message): |
| 31 | """Scramble used for mysql_native_password""" |
| 32 | if not password: |
| 33 | return b"" |
| 34 | |
| 35 | stage1 = sha1_new(password).digest() |
| 36 | stage2 = sha1_new(stage1).digest() |
| 37 | s = sha1_new() |
| 38 | s.update(message[:SCRAMBLE_LENGTH]) |
| 39 | s.update(stage2) |
| 40 | result = s.digest() |
| 41 | return _my_crypt(result, stage1) |
| 42 | |
| 43 | |
| 44 | def _my_crypt(message1, message2): |