HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.12.2007, 19:38
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Если в базе только проверенные данные:
PHP код:
echo preg_replace('/(\d{2})/e''chr(\1)''3332353637383940'); 
 
Ответить с цитированием

  #2  
Старый 18.12.2007, 19:43
Macro
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #3  
Старый 18.12.2007, 19:49
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Macro  
Ты не прав ибо HEX подразумевает цифры и буквы от a до f
И, потом, будет лишь выводиться "chr(33)", например, а нам нужен результат функции chr().
функция chr принимает только целые числа

Последний раз редактировалось astrologer; 18.12.2007 в 19:52..
 
Ответить с цитированием

  #4  
Старый 18.12.2007, 21:13
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

я так понял, функция chr принимает только целые ДЕСЯТИЧНЫЕ значения в качестве аргумента, с целыми в хексе она не работает, так что код Macro выводит не тот результат, что требуется. Так как входная строка (точнее пары символов) - она предполагается в хексе (это хэш вообще-то с набором символов 0-9a-f), а не коды символов в десятичном виде.

т.е 30313233343536373839404142434445 ->  !"#$%&'()*+,-
а вообще-то надо:
30313233343536373839404142434445 -> 0123456789@ABCDE

так как 0x30 это 0, 0x31 - 1 и т.д. так что VampiRUS прав, надо преобразовывать в десятичный вид аргумент, прежде чем скормить chr его.
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение?
 
Ответить с цитированием

  #5  
Старый 18.12.2007, 21:43
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от -=lebed=-  
ЗЫ Вопрос решён принципе, но может есть ещё более изящное и оптимальное решение?
моё не подойдёт? (Под редакцией Macro, конечно)
Надо только "0x" дописать было:
PHP код:
<?php
echo preg_replace('/([A-F\d]{2})/ie''chr(0x\1)''30313233343536373839404142434445');
?>
Выдает требуемое:
Код:
0123456789@ABCDE

Последний раз редактировалось astrologer; 18.12.2007 в 21:55..
 
Ответить с цитированием

  #6  
Старый 18.12.2007, 21:59
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

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

  #7  
Старый 18.12.2007, 21:42
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Ну и теперь два вопроса:
1. Реально ли в мускуле хранить такие строки (в том числе и с непечатаемыми служебными символами с кодами 0-255) ?
2. С обратным преобразованием не будет проблем?
 
Ответить с цитированием

  #8  
Старый 18.12.2007, 22:55
-=lebed=-
Флудер
Регистрация: 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..
 
Ответить с цитированием

  #9  
Старый 18.12.2007, 23:17
Ded MustD!e
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();
 
?>
 
Ответить с цитированием

  #10  
Старый 18.12.2007, 23:43
MisteriX
Banned
Регистрация: 13.12.2007
Сообщений: 31
Провел на форуме:
188365

Репутация: 20
По умолчанию

Вот, немного нетуда запостил... Вот вопрос: http://forum.antichat.ru/showthread.php?p=532773
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ