Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
[javascript] помогите дописать скрипт с регулярными выражениями |

14.08.2007, 14:02
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
[javascript] помогите дописать скрипт с регулярными выражениями
Ниже вы можете видеть скрипт для браузера, который по нажатию Shift+Enter преобразует строку в форме ввода (в форме быстрого ответа для отправки текста)
из
04b2539eecc816ecb9af7adb9ce60493:пароль
в
Код:
04b2539eecc816ecb9af7adb9ce60493:пароль
То есть текст после последнего двоточия выделятся красным цветом.
Что нужно
1) чтоб он корректно воспринимал DES и mysql3 хеши 2) тоже самое для freebsd md5
3) корректная работа с записями
хеш:пароль
логин:хеш:пароль
хеш:соль:пароль
логин:хеш:соль:пароль
От чего можно отталкиваться
Mysql - 16 символов
Как и md5 состоит из символов abcdef0987654321
DES - 13 символов
freebsd md5 - 32 символа (пример $1$ 12345678$tDiEmRj8eI0HYEz5Z9P3L/)
Начинается с $1, между $ идет соль до 8 символов (выделил синим цветом), далее 22 символа
ЗЫ для сальтовых мд5 соль обычно 3 или 5 символов, но пока и без этих заморочек стабильно работает
Сам не шарю, на многое не способен
Код:
// Ctrl+Enter RedHash Submits
// version 0.2
// 09.08.2007
// Это Greasemonkey user script.
// Скачать Greasemonkey можно тут: http://greasemonkey.mozdev.org/
// Инсталируйте Greasemonkey
// В вкладке Tools будет новое меню "Install User Script".
// Инсталируте скрипт с дефолтными настройками
// Тестировалось с https://addons.mozilla.org/ru/firefox/downloads/file/16465/greasemonkey-0.7.20070607.0-fx.xpi
// --------------------------------------------------------------------
// Opera 8/9 совместимый скрипт.
// Для инсталяции разместите скрипт в какой-то папке и укажите к ней путь как к папке с пользовательскими скриптами
// Tools > Preferences > Advanced > Content > Javascript Options
// для https в Опере нужно специальное разрешение
// opera:config#UserPrefs|UserJavaScriptonHTTPS
// ---------------------------------------------------------------------
// тестировалось на Firefox 2.0 и Opera 9.21
// ---------------------------------------------------------------------
// ==UserScript==
// @name Ctrl+Enter RedHash Submits
// @description Allows submitting on Ctrl+Enter in any input and textarea
// @include *
// ==/UserScript==
function redhash(text) {
replacements = [
[/(\w{31,32}\:)([^\s\r]+\:)([^\s\r]+)/mig, '$1$2$3'],
[/(\w{31,32}\:)([^\s\r\:]+$)/mig, '$1$2'],
];
s = text
for( i=0; i < replacements.length; i++) {
s = s.replace(replacements[i][0], replacements[i][1])
}
return s
}
function trigger_submit_on_ctrl_enter(e) {
if ((e.keyCode==13) && (e.ctrlKey || e.shiftKey)) {
p = this.parentNode
i = 0
if (this.nodeName == 'TEXTAREA')
this.value = redhash(this.value)
while (p.nodeName != 'FORM' && i++ < 100)
p = p.parentNode
if (p.nodeName == 'FORM' && e.ctrlKey)
p.submit()
}
}
if (document.evaluate) { // Firefox
allInps = document.evaluate("//textarea[not(@id='instant_comment_textarea')] | //select | //input", document, null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < allInps.snapshotLength; i++) {
t = allInps.snapshotItem(i);
t.addEventListener("keydown", trigger_submit_on_ctrl_enter, 0);
}
} else { // Opera 8 does not support XPath
elemTags = ['textarea', 'select', 'input']
for(j = 0; j< elemTags.length; j++) {
inps = document.getElementsByTagName(elemTags[j])
for (var i = 0; i < inps.length; i++)
inps[i].addEventListener("keydown", trigger_submit_on_ctrl_enter, 0);
}
}
Последний раз редактировалось Thanat0z; 22.08.2007 в 18:47..
|
|
|

21.08.2007, 22:13
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
делаю ап. Кто следелает хотя бы корректное распознавание хеша по длине в
13, 16, 31-32, 40
тому +20
|
|
|

21.08.2007, 23:12
|
|
Постоянный
Регистрация: 10.11.2006
Сообщений: 416
Провел на форуме: 5636868
Репутация:
849
|
|
добавить имхо в replacements = [
Код:
[/(\w{16}\:)([^\s\r\:]+$)/mig, '$1$2'],
- mysql (это к примеру)
для DES туда надо вписывать спец. символы (слеши, точки и тд)
Пока не проверить, надо скачивать гризмонкей и тд
Точно так же делаются:
хеш:пароль
логин:хеш:пароль
хеш:соль:пароль
логин:хеш:соль:пароль
Последний раз редактировалось Basurman; 22.08.2007 в 00:09..
|
|
|

21.08.2007, 23:13
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
когда я в тупую делал реплейсы
16, 32, 13
и в тексте были разные хеши, то для хешей в 32 делалась тройная окраска, что не есть гут
|
|
|

21.08.2007, 23:16
|
|
Постоянный
Регистрация: 10.11.2006
Сообщений: 416
Провел на форуме: 5636868
Репутация:
849
|
|
кстати а нафига там
Код:
[/(\w{31,32}\:)([^\s\r]+\:)([^\s\r]+)/mig, '$1$2$3'],
это получается 32симв:непробелнеCR:непробел неCR 
Типа соль?
P.S. ок, сейчас посмотрю поставлю
Последний раз редактировалось Basurman; 21.08.2007 в 23:23..
|
|
|

21.08.2007, 23:19
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
Сообщение от Basurman
Типа соль?
да, скрипт задумывался для работы без логина, но пока проблем не было
|
|
|

22.08.2007, 01:05
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Танатоз хочу уточнить что будет входнымы данными для скрипта. Т.е. какого вида будет переменная (text) в function redhash(text). Это будет текст вида
хеш:пароль
логин:хеш:пароль
хеш:соль:пароль
логин:хеш:соль:пароль
в любых сочетаниях, или же ЛЮБОЙ текст в котором встречаються записи вида хеш:пароль и т.д. по условию задачи и уже в этом тексте нужно найти записи, определить что из них какой хеш и только тогда подсветить пароль.
Читая пост я понял что основное это
То есть текст после последнего двоточия выделятся красным цветом.
У меня есть скрипт на ПХП который может взять файл вида
хеш:пароль
логин:хеш:пароль
хеш:соль:пароль
логин:хеш:соль:пароль
в любых сочетаниях, и на выходе создать файл с подсвечеными паролями. Если это оно могу выложить. Если не так понял задачку сильно не бить, лучше раскажите что не так понял.
|
|
|

22.08.2007, 01:28
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
нужен яваскрипт, чтоб на стороне клиента делать действия
ЗЫ если грубо взять, то надо выделять текст именно после последнего двоеточия, тут правильно заметил
|
|
|

22.08.2007, 12:13
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Танатоз есть такая штука
Код:
Исходный текст<br>
aaaaaaaa:bbbb!cbbb sdfsdfs sdf aaaaaa aa:yb@#%$%bbbbbaaaaaaaa:ybbbbbb aaaaaaaa:ubbbb@%^bb aaaaaaaa:ibbbbbb Привет Мир!Я делаю скрипт.... aaaaaaa:ibbbbbb
<br>
<script>
function redhash(text) {
var re = /:([^ \f\n\r\t\v:]+)\s/mig;
var str = text;
document.write(str.replace(re,':<b>$1</b> '));
}
var r = " aaaaaaaa:bbbb!cbbb sdfsdfs sdf aaa#$aaa aWR$%a:bbbbbaaaaaaaa:ybbbbbb $aaa$aaaaa:ubbbb@%^bb aaaaaaaa:ibbbbbb Привет Мир!Я делаю скрипт.... aaaaaaa:ibbbbbb ";
</script>
Готовый текст<br>
<script>
redhash(r) ;
</script>
Скрипт ищет в тексте записи вида символы:символы:.........:симво лы:пароль и подсвечивает пароль. Пример сдесь http://maksrusya.narod.ru/java.html
Если подходит можно адаптировать под твой скрипт. Но есть проблемка я не могу запустить исходный (твой) скрипт.
Последний раз редактировалось Red_Red1; 22.08.2007 в 13:30..
|
|
|

22.08.2007, 17:59
|
|
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме: 951141
Репутация:
291
|
|
Если вдруг кто-то не понял автор темы просит изменить\написать userjs (Opera и Мозилла (работает при установке плагина) смотри operafan.net)
Последний раз редактировалось inv; 22.08.2007 в 17:59..
Причина: опечатки
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|