PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 13
z668
Отправлено: 26 Ноября, 2015 - 00:36:42 • Тема: mcrypt_encrypt(): The IV parameter must be as long • Форум: Кодировки и все смежное
Ответов: 6 Просмотров: 2318
По длине - один в один, 32 символа.
Т.к. в PHP без понятия как работать с hex или байтами - вывел $iv строкой, вот что получилось:
По поводу размера блока не могу сказать, незнаю. Шарп галатает все на раз. Размер блока у шарпа - 256, длина IV у шарпа 256/8=32 символа\байта согласно документации.
z668
Отправлено: 26 Ноября, 2015 - 00:17:52 • Тема: mcrypt_encrypt(): The IV parameter must be as long • Форум: Кодировки и все смежное
Ответов: 6 Просмотров: 2318
PHP выдает ошибку: `mcrypt_encrypt(): The IV parameter must be as long as the blocksize`
Что ему не нравится в векторе?
CODE (
php ):
скопировать код в буфер обмена
// Ключ
$AES_Key = "93908027539382757893442837120983" ;
// Вектор
$AES_IV = "33985771209830270358974938292834" ;
// Методы
function encrypt( $string )
{
}
function addpadding( $string , $blocksize = 32)
{
$pad = $blocksize - ( $len % $blocksize ) ;
return $string ;
}
Аналогичный код на шарпе работает отлично:
CODE (
php ):
скопировать код в буфер обмена
// Ключ
private const string AES_Key = "93908027539382757893442837120983" ;
// Вектор
private const string AES_IV = "33985771209830270358974938292834" ;
// Зашифровывает строку в AES CBC 256 PKCS7
internal static string AES_Encrypt( string inputStr)
{
byte[ ] xBuff = null ;
using ( var aes = new RijndaelManaged( ) )
{
// Настройки
aes. KeySize = 256 ;
aes. BlockSize = 256 ;
aes. Padding = PaddingMode. PKCS7;
aes. Mode = CipherMode. CBC;
aes
. Key = Encoding
. UTF8
. GetBytes
( AES_Key
) ; aes. IV = Encoding. UTF8. GetBytes( AES_IV) ;
using ( var ms = new MemoryStream( ) )
{
using
( var cs
= new CryptoStream
( ms
, aes
. CreateEncryptor
( aes
. Key , aes
. IV
) , CryptoStreamMode
. Write
) ) {
byte[ ] textArr = Encoding. UTF8. GetBytes( inputStr) ;
cs. Write( textArr, 0, textArr. Length) ;
}
xBuff = ms. ToArray( ) ;
}
}
return Convert. ToBase64String( xBuff) ;
}
z668
Отправлено: 22 Декабря, 2014 - 19:56:45 • Тема: Как проверить, включена ли поддержка сокетов? • Форум: Вопросы новичков
Ответов: 2 Просмотров: 153
Мелкий , мне предложили вот такой вариант.
Благодарю, с вашим ответом сложилась полная картина. Т.е. это можно сделать 3-мя способами.
p.s. к сожалению не могу лайкнуть, не хватает постов.
z668
Отправлено: 10 Марта, 2013 - 22:59:33 • Тема: Проблема со скачкой файлов с файлообменника • Форум: HTTP и PHP
Ответов: 4 Просмотров: 1849
DlTA пишет: ну несчитая бесполезной прилюдии в виде рандомного выбора заголовки и рефа, (в прототипе оно нафиг не надо особенно с учетом проблемы)
1) CURLOPT_AUTOREFERER - это кто?
2) нехватает установки CURLOPT_HEADER
3) а что вообще приходит?
1. http://fr.php.net/curl-setopt
2. заголовки проставлены
CODE (
htmlphp ):
скопировать код в буфер обмена
$header [ ] = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1" ;
$header [ ] = "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8" ;
$header [ ] = "Accept-Charset: Windows-1251, utf-8, *;q=0.1" ;
3. Приходит: 1
z668
Отправлено: 10 Марта, 2013 - 22:28:21 • Тема: Проблема со скачкой файлов с файлообменника • Форум: HTTP и PHP
Ответов: 4 Просмотров: 1849
К сожалению не помогло, выкладываю скрипт:
Код (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
$header [ ] = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1" ;
$header [ ] = "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8" ;
$header [ ] = "Accept-Charset: Windows-1251, utf-8, *;q=0.1" ;
function browser ( $rand_browser ) {
switch ( $rand_browser ) {
case 1:
return ( "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4" ) ;
break ;
case 2:
return ( "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7" ) ;
break ;
case 3:
return ( "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)" ) ;
break ;
case 4:
return ( "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51" ) ;
break ;
case 5:
return ( "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.00" ) ;
break ;
case 6:
return ( "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0 Version/11.76" ) ;
break ;
case 7:
return ( "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" ) ;
break ;
case 8:
return ( "Mozilla/5.0 (X11; U; Linux i686 (x86_64); ru-RU; rv:1.8.1.6) Gecko/2007072300 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etch1+lenny1)" ) ;
break ;
case 9:
return ( "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.7.12) Gecko/20050929" ) ;
break ;
case 10:
return ( "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; ru-RU) AppleWebKit/525.05 (KHTML, like Gecko) Chrome/10.0.648.205" ) ;
break ;
case 11:
return ( "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_9_8; ru-RU) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.8.792.108" ) ;
break ;
case 12:
return ( "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 11_1_5; ru-RU) AppleWebKit/628.52 (KHTML, like Gecko) Chrome/11.1.512.205" ) ;
break ;
}
}
function referer ( $rand_referer ) {
switch ( $rand_referer ) {
case 1:
return ( "http://www.yandex.ru/" ) ;
break ;
case 2:
return ( "http://google.com/" ) ;
break ;
case 3:
return ( "http://mail.ru/" ) ;
break ;
case 4:
return ( "http://otvet.mail.ru/" ) ;
break ;
case 5:
return ( "http://www.rambler.ru/" ) ;
break ;
}
}
$browser = browser( $rand_browser ) ;
$referer = referer( $rand_referer ) ;
$file_stream = "http://zalil.ru/34334780/71b9e18a.513d9090/1.txt" ;
//curl сессия
$fp = fopen ( '1.txt' , 'w+' ) ; echo $result ;
?>
z668
Отправлено: 10 Марта, 2013 - 22:00:05 • Тема: Проблема со скачкой файлов с файлообменника • Форум: HTTP и PHP
Ответов: 4 Просмотров: 1849
Возникла проблема при скачивании файлов с файлообменника средствами PHP. Суть вот в чем - файлообменник не сразу выдает файл а через php скрипт выводит запрос на сохранение файла в браузер заголовками, т.е.:
Подскажите как возможно это обойти?
z668
Отправлено: 18 Января, 2013 - 14:18:56 • Тема: Как вывести открытый через COM объект Excel документ на печать? • Форум: Операционная система и системные вызовы
Ответов: 3 Просмотров: 2906
Добрый день.
Есть подобный код:
PHP:
скопировать код в буфер обмена
$excel_app = new COM( "Excel.application" ) ;
$Workbook = $excel_app -> Workbooks -> Open ( "c:\Out_шаблон.xls" ) ;
$Worksheet = $Workbook -> Worksheets ( "Лист1" ) ;
$Worksheet -> activate ;
$range = $excel_app -> Range ( "B2" ) ;
$range -> Value = $number ;
$range = $excel_app -> Range ( "B3" ) ;
$range -> Value = trim ( $name ) . " (" . trim ( $job_name ) . ")" ;
$range = $excel_app -> Range ( "B4" ) ;
$range -> Value = trim ( $date ) ;
$range = $excel_app -> Range ( "B5" ) ;
$range -> Value = trim ( $text ) ;
$excel_app -> Workbooks [ 1 ] -> SaveAs ( "c:\Out_" . $number . ".xls" ) ;
$excel_app -> Workbooks -> Close ( ) ;
$excel_app -> Quit ( ) ;
Суть в том что мне нужно из программы распечатать данный текстовый документ Excel, возможно ли это сделать?
p.s. гуглил, так ничего не нашел.
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB