ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

18.12.2007, 19:38
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Если в базе только проверенные данные:
PHP код:
echo preg_replace('/(\d{2})/e', 'chr(\1)', '3332353637383940');
|
|
|

18.12.2007, 19:43
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме: 1845062
Репутация:
1079
|
|
Сообщение от astrologer
Если в базе только проверенные данные:
PHP код:
echo preg_replace('/(\d{2})/e', 'chr(\1)', '3332353637383940');
Ты не прав ибо HEX подразумевает цифры и буквы от a до f
Однако, мысль отличная.
PHP код:
<?
$str='3334353637383940';
echo(preg_replace('/([\da-f]{2})/ie', 'chr(\1);',$str));
?>
ЗЫ что-то я сегодня плохо соображаю
Последний раз редактировалось Macro; 18.12.2007 в 19:51..
|
|
|

18.12.2007, 19:49
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от Macro
Ты не прав ибо HEX подразумевает цифры и буквы от a до f
И, потом, будет лишь выводиться "chr(33)", например, а нам нужен результат функции chr().
функция chr принимает только целые числа
Последний раз редактировалось astrologer; 18.12.2007 в 19:52..
|
|
|

18.12.2007, 21:13
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
я так понял, функция chr принимает только целые ДЕСЯТИЧНЫЕ значения в качестве аргумента, с целыми в хексе она не работает, так что код Macro выводит не тот результат, что требуется. Так как входная строка (точнее пары символов) - она предполагается в хексе (это хэш вообще-то с набором символов 0-9a-f), а не коды символов в десятичном виде.
т.е 30313233343536373839404142434445 -> !"#$%&'()*+,-
а вообще-то надо:
30313233343536373839404142434445 -> 0123456789@ABCDE
так как 0x30 это 0, 0x31 - 1 и т.д. так что VampiRUS прав, надо преобразовывать в десятичный вид аргумент, прежде чем скормить chr его.
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение? 
|
|
|

18.12.2007, 21:43
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от -=lebed=-
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение? 
моё не подойдёт? (Под редакцией Macro, конечно)
Надо только "0x" дописать было:
PHP код:
<?php
echo preg_replace('/([A-F\d]{2})/ie', 'chr(0x\1)', '30313233343536373839404142434445');
?>
Выдает требуемое:
Последний раз редактировалось astrologer; 18.12.2007 в 21:55..
|
|
|

18.12.2007, 21:59
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от astrologer
моё не подойдёт? (Под редакцией Macro, конечно)
Надо только "0x" дописать было:
PHP код:
<?php
echo preg_replace('/([A-F\d]{2})/ie', 'chr(0x\1)', '30313233343536373839404142434445');
?>
Выдает требуемое: Первоначальные данные всё же только цифровые или нет?
Входные данные это любой мд5 хэш (32 символа 0-9a-z), т.е 32 байта в ASCII представлении, задача: его закодировать в 16 байт, в heх, так как md5-хэш на самом деле это ничто иное как HEX-число в 16 байт.
|
|
|

18.12.2007, 21:42
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Ну и теперь два вопроса:
1. Реально ли в мускуле хранить такие строки (в том числе и с непечатаемыми служебными символами с кодами 0-255) ?
2. С обратным преобразованием не будет проблем?
|
|
|

18.12.2007, 22:55
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Теперь нужна функция обратного преобразования этой:
PHP код:
function code_hash($hash)
{
include('conf.php');
$n=0;
$hash_code="";
do
{
$code='0x'.$hash[$n].$hash[$n+1];
$hash_code.=chr(hexdec($code));
$n++;
}
while ($n++<31);
return $hash_code;
}
PHP код:
function decode_hash($string)
{
$n=0;
$decode_hash="";
do
{
$code=ord($string[$n]);
$decode_hash.=dechex($code);
}
while ($n++<15);
return $decode_hash;
}
Последний раз редактировалось -=lebed=-; 18.12.2007 в 23:03..
|
|
|

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
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|