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

18.12.2007, 23:17
|
|
Members of Antichat - Level 5
Регистрация: 23.08.2007
Сообщений: 417
Провел на форуме: 14324684
Репутация:
3908
|
|
Нужно написать скрипт, который будет рисовать график функции y=a*x^2+b*x+c, значения a,b,c задаются с клавиатуры. Сетку я сделал, обычную параболу вывести могу, но не понимаю как задать нужную функцию и коэффициенты вручную.
Как работает:
Код:
http://mytesterphp.h18.ru/graph.php
Код:
PHP код:
<?php
include ("src/jpgraph.php");
include ("src/jpgraph_line.php");
include ("src/jpgraph_utils.inc.php");
$f = new FuncGenerator('$x*$x');
list($x1data,$y1data) = $f->E(-5,5);
$graph = new Graph(550,450,"auto");
$graph->SetScale("linlin");
$graph->SetShadow();
$graph->img->SetMargin(50,50,60,40);
$graph->SetBox(true,'darkgreen',2);
$graph->SetMarginColor('white');
$graph->SetColor('lightyellow');
$graph->title->Set('ax^2+bx+c=0');
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xgrid->Show();
$graph->yaxis->SetPos(0);
$graph->yaxis->SetWeight(2);
$graph->yaxis->HideZeroLabel();
$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->SetColor('darkgreen','darkblue');
$graph->yaxis->HideTicks(true,false);
$graph->yaxis->HideFirstLastLabel();
$graph->xaxis->SetWeight(2);
$graph->xaxis->HideZeroLabel();
$graph->xaxis->HideFirstLastLabel();
$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetColor('darkgreen','darkblue');
$lp2 = new LinePlot($y1data,$x1data);
list($xm,$ym)=$lp2->Max();
$lp2->SetColor('orange');
$lp2->SetWeight(2);
$graph->Add($lp2);
$graph->Stroke();
?>
|
|
|

18.12.2007, 23:43
|
|
Banned
Регистрация: 13.12.2007
Сообщений: 31
Провел на форуме: 188365
Репутация:
20
|
|
Вот, немного нетуда запостил... Вот вопрос: http://forum.antichat.ru/showthread.php?p=532773
|
|
|

19.12.2007, 02:18
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Вот сделал функцию для распознавания типа хэша (пока только 4, точнее 3, так как хэши MySQL5 и SHA-1 неотличимы).
PHP код:
function type_hash($string)
{
if (ereg('^([a-fA-F0-9]{16})$', $string)) return 1; // MySQL
if (ereg('^([a-fA-F0-9]{32})$', $string)) return 2; // MD5
if (ereg('^([a-fA-F0-9]{40})$', $string)) return 3; // MySQL5 или SHA-1
return 0; // неизвестен
}
1.Как сделать тоже самое, используя функцию preg_match?
2. Помогите с регулярками для определения типов хэшей:
DES (пример:HlXOX8MN5z4X6),
MD5 (Unix) $1$$uqbusDeGY2YWqg.T2S1100
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
MD5(Base64) Gh3JHJBzJcaScd3wyUS8cg ==
SHA-1 (Base64) NU4eI71bcnBGqeO0t9tXvY1u5oQ =
Последний раз редактировалось -=lebed=-; 19.12.2007 в 03:33..
|
|
|

19.12.2007, 02:59
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Сообщение от -=lebed=-
Вот сделал функцию для распознавания типа хэша (пока только 4, точнее 3, так как хэши MySQL5 и SHA-1 неотличимы).
PHP код:
function type_hash($string)
{
if (ereg('^([a-fA-F0-9]{16})$', $string)) return 1; // MySQL
if (ereg('^([a-fA-F0-9]{32})$', $string)) return 2; // MD5
if (ereg('^([a-fA-F0-9]{40})$', $string)) return 3; // MySQL или SHA-1
return 0; // неизвестен
}
1.Как сделать тоже самое, используя функцию preg_match?
2. Помогите с регулярками для определения типов хэшей:
DES (пример:HlXOX8MN5z4X6),
MD5 (Unix) $1$$uqbusDeGY2YWqg.T2S1100
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
MD5(Base64) Gh3JHJBzJcaScd3wyUS8cg ==
SHA-1 (Base64) NU4eI71bcnBGqeO0t9tXvY1u5oQ =
1.
PHP код:
if (preg_match("/^([a-fA-F0-9]{16})$/",$string)) echo 'MySQL ';
if (preg_match("/^([a-fA-F0-9]{32})$/",$string)) echo 'MD5 ';
if (preg_match("/^([a-fA-F0-9]{40})$/",$string)) echo 'MySQL или SHA-1';
2.
также как ты и делал, только те символы что не изменяются просто вводишь (только перед доларом надо постави "\" )
итак пример для
MD5(APR) $apr1$$kRqAZHnuzcwDL84Mm7oc1.
/^\$arp1\$\$[a-zA-Z0-9]{21}$/
ПС:для написания и отладки регулярных выражений можно использовать специальные прожки, например, VisualREGEXP и The Regex Coach
|
|
|

19.12.2007, 12:37
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Вот способ как запросить из мускула MySQL хэш:
PHP код:
$query = "SELECT PASSWORD('".$pass."')";
$r = mysql_query($query);
$rq = mysql_fetch_array($r);
$hash = $rq[0]; //МуSQL хэш
Я так понял, что если Мускул <5 это будет хэш (0-9a-z {8})
а если MySQL5 то хэш будет (0-9a-z {40})
Теперь вопрос: Как независимо от версии Мускула получать хэши MySQL и MySQL5 от какого либо значения? Т.е. может есть готовые функции хэширования на PHP, независящие от мускула и не обращающеся к нему?
Ну типа как в встроенных функциях PHP md5(), sha1()
ЗЫ Чё? так никто и не знает как в Мускуле <5 вычислить хэш Mysql5 ?
Видел где-то что sha1(sha1(password)) это и есть MySQL(password) это так ? Щас проверю сам... неправда
Последний раз редактировалось -=lebed=-; 19.12.2007 в 17:15..
|
|
|

19.12.2007, 18:04
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме: 1724067
Репутация:
806
|
|
Сообщение от Dimi4
Я наверное не совсем так выразился.Мне не нужен именно переводчик. Мне нужно ятоб например юзер вводить в форме: r57а ему в ответ - Шелл.Последнея версия...Сайт. Думаю понял.
Я хотел сделать файл типа base.php
PHP код:
<?
$slova = array(
'r57'=>'Шелл.Последняя версия'
'qwe'=>'qwe'
);
?>
Мне нужна функция, котороя б брала слова из етого файла и "переводила их "
Это ты же создаешь именной масив. для того чтобы взять значение из него пиши:
|
|
|

19.12.2007, 19:02
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
Сообщение от -=lebed=-
Вот способ как запросить из мускула MySQL хэш:
PHP код:
$query = "SELECT PASSWORD('".$pass."')";
$r = mysql_query($query);
$rq = mysql_fetch_array($r);
$hash = $rq[0]; //МуSQL хэш
Я так понял, что если Мускул <5 это будет хэш (0-9a-z {8})
а если MySQL5 то хэш будет (0-9a-z {40})
Теперь вопрос: Как независимо от версии Мускула получать хэши MySQL и MySQL5 от какого либо значения? Т.е. может есть готовые функции хэширования на PHP, независящие от мускула и не обращающеся к нему?
Ну типа как в встроенных функциях PHP md5(), sha1()
ЗЫ Чё? так никто и не знает как в Мускуле <5 вычислить хэш Mysql5 ?
Видел где-то что sha1(sha1(password)) это и есть MySQL(password) это так ? Щас проверю сам... неправда
Вместо PASSWORD двойной SHA1 использовался только в одном буилде мускула, а именно MySLQ 5.0.27
|
|
|

19.12.2007, 19:56
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
2 -=lebed=-
PHP код:
<?
echo sha1(sha1('mypass',1));
?>
Про это узнал вот тут http://www.wasm.ru/forum/viewtopic.php?pid=203131#p203131
Обрати внимание на слова
Второй раз нужно хешировать _бинарные_ данные.
Проверил на ПассвордПро
sha1('mypass') = e727d1464ae12436e899a726da5b2f11d8381b26
MySQL5('mypass') = 6c8989366eaf75bb670ad8ea7a7fc1176a95cef4
echo sha1(sha1('mypass',1)); >>> 6c8989366eaf75bb670ad8ea7a7fc1176a95cef4
Весь прикол в НЕОБЯЗАТЕЛЬНОМ параметре sha1. Нашел тут http://delaysayt.ru/sha1-vozvraschaet-sha1-hesh-stroki.html
Думаю это то что тебе нужно 
Последний раз редактировалось Red_Red1; 19.12.2007 в 20:26..
|
|
|

19.12.2007, 21:48
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
проверил, пашет! хэши скрипт от mypass выдаёт правильные.
Хэш MySQL:6f8c114b58f2ce9e
Хэш MD5:a029d0df84eb5549c641e04a9ef389e5
Хэш SHA1:e727d1464ae12436e899a726da5b2f11d8381b26
Хэш MySQL5:6c8989366eaf75bb670ad8ea7a7fc1176a95cef4
Но вот трабла при занесении в таблицу после преобразования этих хэшей, запрос вида:
PHP код:
INSERT INTO passwd_hash (`passwd`,`code1`,`code2`,`code3`,`code4`) VALUES ('mypass','oЊKXтОћ',' )РЯ„лUIЖAаJћу‰е','з'СFJб$6и™§&Ъ[/Ш8&','l‰‰6nЇu»g ШкzБj•Оф')
Выдаёт ошибку синтаксиса, так как после кодирования хэшей всплыли спецсимволы.
Какой тип данных поставить для полей, чтоб можно было хранить строку из любых символов (0-ff)
Напомню, мне нужно хранить (записывать) хэши в таблице(у) не в ASCII представлении, а в виде последовательности любых байтов, т.е в hex чтоб размер поля был в два раза меньше, т.е 8, 16, 20 байт для каждого типа хэша соответствено.
Использовал типы данных binary(8), binary(16), binary(20), binary(20) - непрокатывает запрос!
Тип bigint - 8 байт, подойдёт только для хранения хэша MySQL, а что делать с остальными (делить на столбцы не хотелось бы).
ЗЫ Даже тут видно, что запрос испортила всплывшая одинарная ковычка, в коде одного из хэшей. 
Последний раз редактировалось -=lebed=-; 19.12.2007 в 21:53..
|
|
|

19.12.2007, 21:59
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
varchar(8), varchar(16), varchar(20)
и прогоняй значения перед вставкой через mysql_escape_string(), она заэкранирует все спецсимволы, но мускул поймет все правильно
ЗЫ еще как вариант BLOB, но так как поле динамическое возникнут траблы с быстродействием
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|