Новые книги

Возвращение знаменитого бестселлера. Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development – разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
Скидки и распродажи – всего лишь самые простые и вовсе не самые эффективные методы увеличения объема продаж. В действительности арсенал стимулирования продаж огромен и разнообразен и позволяет разработать не просто промоакции, а настоящие маркетинговые шедевры. Причем некоторые из них – совершенно бесплатно. В этой книге вы найдете много идей для организации ярких промокампаний.

mcrypt_generic_init

Учебник РНР
НазадВперёд

mcrypt_generic_init

(PHP 4 >= 4.0.2)

mcrypt_generic_init - инициализирует все буферы для шифрования.

Описание

int mcrypt_generic_init (resource td, string key, string iv)

Максимальный размер ключа должен быть получен вызовом функции mcrypt_enc_get_key_size(), и каждое значение меньше полученного будет правильным. IV должен нормально иметь размер блока алгоритма, но вы обязаны получить этот размер вызовом mcrypt_enc_get_iv_size(). IV игнорируется в ECB. IV ОБЯЗАН существовать в режимах CFB, CBC, STREAM, nOFB и OFB. Он должен быть случайным и уникальным (но не секретным). Этот же самый IV обязан использоваться для шифрования/дешифрования. Если вы не хотите использовать его, вы должны установить его в нули, но это не рекомендуется. Функция возвращает отрицательное значение при ошибке.

Вам необходимо вызывать эту функцию перед каждым вызовом mcrypt_generic() или mdecrypt_generic().

См. для примера mcrypt_module_open() и вхождение в mcrypt_generic_deinit().


Назад Оглавление Вперёд
mcrypt_generic_end Вверхmcrypt_generic