PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 13
z668 Отправлено: 26 Ноября, 2015 - 09:06:25 • Тема: mcrypt_encrypt(): The IV parameter must be as long • Форум: Кодировки и все смежное

Ответов: 6
Просмотров: 2318
Линк на рабочую реализацию: http://ru[dot]stackoverflow[dot]com/ques[dot][dot][dot]s-the-blocksize/

p.s. объяснение в комментариях.
z668 Отправлено: 26 Ноября, 2015 - 02:59:22 • Тема: mcrypt_encrypt(): The IV parameter must be as long • Форум: Кодировки и все смежное

Ответов: 6
Просмотров: 2318
Проблема найдена.
Вот статья по этому поводу: https://www[dot]chilkatsoft[dot]com/p/php_aes[dot]asp

p.s. а вы говорите "дьявольская студия", это не студия "дьявольская", это PHP - "утопия" =)
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):
скопировать код в буфер обмена
  1.  
  2.     // Ключ
  3.     $AES_Key = "93908027539382757893442837120983";
  4.    
  5.     // Вектор
  6.     $AES_IV = "33985771209830270358974938292834";
  7.    
  8.     // Методы
  9.     function encrypt($string)
  10.     {
  11.         return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $AES_Key, addpadding($string), MCRYPT_MODE_CBC, $AES_IV));
  12.     }
  13.    
  14.     function addpadding($string, $blocksize = 32)
  15.     {
  16.         $len = strlen($string);
  17.         $pad = $blocksize - ($len % $blocksize);
  18.         $string .= str_repeat(chr($pad), $pad);
  19.         return $string;
  20.     }



Аналогичный код на шарпе работает отлично:

CODE (php):
скопировать код в буфер обмена
  1.     // Ключ
  2.     private const string AES_Key = "93908027539382757893442837120983";
  3.        
  4.     // Вектор
  5.     private const string AES_IV = "33985771209830270358974938292834";
  6.        
  7.     // Зашифровывает строку в AES CBC 256 PKCS7
  8.     internal static string AES_Encrypt(string inputStr)
  9.     {
  10.              byte[] xBuff = null;
  11.        
  12.              using (var aes = new RijndaelManaged())
  13.              {
  14.                   // Настройки
  15.                   aes.KeySize = 256;
  16.                   aes.BlockSize = 256;
  17.                   aes.Padding = PaddingMode.PKCS7;
  18.                   aes.Mode = CipherMode.CBC;
  19.                   aes.Key = Encoding.UTF8.GetBytes(AES_Key);
  20.                   aes.IV = Encoding.UTF8.GetBytes(AES_IV);
  21.        
  22.                   using (var ms = new MemoryStream())
  23.                   {
  24.                       using (var cs = new CryptoStream(ms, aes.CreateEncryptor(aes.Key, aes.IV), CryptoStreamMode.Write))
  25.                       {
  26.                            byte[] textArr = Encoding.UTF8.GetBytes(inputStr);
  27.                            cs.Write(textArr, 0, textArr.Length);
  28.                        }
  29.        
  30.                         xBuff = ms.ToArray();
  31.                    }
  32.               }
  33.        
  34.           return Convert.ToBase64String(xBuff);
  35.     }
z668 Отправлено: 22 Декабря, 2014 - 19:56:45 • Тема: Как проверить, включена ли поддержка сокетов? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 153
Мелкий, мне предложили вот такой вариант.



Благодарю, с вашим ответом сложилась полная картина. Т.е. это можно сделать 3-мя способами.

p.s. к сожалению не могу лайкнуть, не хватает постов.
z668 Отправлено: 22 Декабря, 2014 - 19:41:06 • Тема: Как проверить, включена ли поддержка сокетов? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 153
Как проверить, включена ли поддержка сокетов?

upd
вопрос решен
z668 Отправлено: 07 Июля, 2014 - 15:06:29 • Тема: Интересный скрипт (под обфуксацией) • Форум: HTTP и PHP

Ответов: 3
Просмотров: 1105
Спасибо ребят. Я больше по дотнету)
z668 Отправлено: 07 Июля, 2014 - 13:16:15 • Тема: Интересный скрипт (под обфуксацией) • Форум: HTTP и PHP

Ответов: 3
Просмотров: 1105
Добрый день.
Сегодня вычищая очередной сайт столкнулся с таким вот скриптом: http://pastebin[dot]com/kGAC78ur
Мне интересно что он делает, никто с подобным не сталкивался?
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):
скопировать код в буфер обмена
  1. $header [] = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1";
  2. $header [] = "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8";
  3. $header [] = "Accept-Charset: Windows-1251, utf-8, *;q=0.1";
  4.  

3. Приходит: 1
z668 Отправлено: 10 Марта, 2013 - 22:28:21 • Тема: Проблема со скачкой файлов с файлообменника • Форум: HTTP и PHP

Ответов: 4
Просмотров: 1849
К сожалению не помогло, выкладываю скрипт:

Код (Отобразить)
z668 Отправлено: 10 Марта, 2013 - 22:00:05 • Тема: Проблема со скачкой файлов с файлообменника • Форум: HTTP и PHP

Ответов: 4
Просмотров: 1849
Возникла проблема при скачивании файлов с файлообменника средствами PHP. Суть вот в чем - файлообменник не сразу выдает файл а через php скрипт выводит запрос на сохранение файла в браузер заголовками, т.е.:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Content-Disposition: attachment; filename=file.txt


Подскажите как возможно это обойти?
z668 Отправлено: 18 Января, 2013 - 14:24:15 • Тема: Как вывести открытый через COM объект Excel документ на печать? • Форум: Операционная система и системные вызовы

Ответов: 3
Просмотров: 2906
Все верно, мне и нужно только на винде.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $excel_app = new COM("Excel.application");
  2. $Workbook = $excel_app->Workbooks->Open("c:\Out.xls");
  3. $Worksheet = $Workbook->Worksheets("Лист1");
  4. $Worksheet->activate;
  5.  
  6. $excel_app->Workbooks[1]->PrintOut();
  7. $excel_app->Workbooks->Close();
  8. $excel_app->Quit();  

Нашел, возможно кому то нужно.
z668 Отправлено: 18 Января, 2013 - 14:18:56 • Тема: Как вывести открытый через COM объект Excel документ на печать? • Форум: Операционная система и системные вызовы

Ответов: 3
Просмотров: 2906
Добрый день.
Есть подобный код:

PHP:
скопировать код в буфер обмена
  1. $excel_app = new COM("Excel.application");
  2. $Workbook = $excel_app->Workbooks->Open("c:\Out_шаблон.xls");
  3. $Worksheet = $Workbook->Worksheets("Лист1");
  4. $Worksheet->activate;
  5.  
  6. $range=$excel_app->Range("B2");
  7. $number = trim(intval($out[1])) + 1;
  8. $range->Value = $number;
  9.  
  10. $range=$excel_app->Range("B3");
  11. $range->Value = trim($name) . " (" . trim($job_name) . ")";
  12.  
  13. $range=$excel_app->Range("B4");
  14. $range->Value = trim($date);
  15.  
  16. $range=$excel_app->Range("B5");
  17. $range->Value = trim($text);
  18.  
  19. $excel_app->Workbooks[1]->SaveAs("c:\Out_" . $number . ".xls");
  20. $excel_app->Workbooks->Close();
  21. $excel_app->Quit();  


Суть в том что мне нужно из программы распечатать данный текстовый документ Excel, возможно ли это сделать?

p.s. гуглил, так ничего не нашел.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB