Проблема с PHP в том, что mcrypt поддерживает только заполнение нулями. C # не поддерживает пустое заполнение по уважительной причине, он теряет популярность, если вы шифруете двоичную информацию. Если вы переключитесь на OpenSSL для шифрования на PHP, вы получите лучшие варианты заполнения. После переключения вам просто нужно убедиться, что размер блока, режим и параметры заполнения одинаковы с обеих сторон.