Почему строчные символы в CentOS отображаются как блоки? - PullRequest
1 голос
/ 07 мая 2009

Я проверял, кто подписывался на один из моих сайтов, используя грубую силу SELECT * FROM tblUsers;

Я хэширую пароли пользователей, поэтому они не отображаются в виде открытого текста, и я заметил странный артефакт при отображении одного из них. Это сложно объяснить словами, поэтому вот текст недавней сессии:

mysql> select password from tblUsers;
+------------------+
| password         |
+------------------+
| KÐÊ2®\Û‹:ã5«ƒñ_ | 
| ú¾ôn" ™µ'gxõ | 
| Ú‘¤êB3ãóÒq+« | 
+------------------+
3 _-+_ i+ _e+ (0.00 _ec)

+y_-+> 
[1]+  S+---ed                 +y_-+ -+ |b++ -- -b  (+d: ~)
(+d +-+: /+a_/+++/h+++)
[_--+@_15308575 h+++]# ech- "HUNTER2"    
HUNTER2
[_--+@_15308575 h+++]# ech- "h+++e_2"
h+++e_2
[_--+@_15308575 h+++]# ech- "abcdefghi+++++---__++++|yz"
abcdefghi+++++---__++++|yz

Содержание вставки немного странное; в действительности все эти [+\-_a-eh-z] отображаются как █. f отображает в клиенте как ±, а g отображает в клиенте как '.

Я использую SecureCRT для SSH для учетной записи 1 & 1 VPS (под управлением CentOS). Есть ли какая-то магия, которая вызывает эту ошибку дисплея? Это в клиенте или в ОС? Проблема исчезает при закрытии сеанса и повторном входе в систему.

1 Ответ

2 голосов
/ 07 мая 2009

Я бы предположил, что один или несколько символов в хешированных паролях интерпретируются как специальные команды, которые изменяют кодировку терминала. Попробуйте cat бинарный файл, и вы, скорее всего, получите то же самое .

...