TLDR;
Вы используете другой IV и другой алгоритм (AES-128 против AES-256), поэтому вы получите разные результаты ...
Вам нужно будет использовать тот же IV, а также тот же ключ и алгоритм, если вы хотите получить идентичные результаты. Это будет антишаблон (т.е. не делайте этого)! Проверьте комментарий Джона о том, как вы игнорируете переменную алгоритма в своем коде, так как на первый взгляд это и разные IV отвечают за то, почему вы получаете разные результаты.
Длинный ответ;
1) Вы действительно хотите, чтобы одно и то же сообщение (простой текст ), зашифрованный одним и тем же ключом, не всегда дает одинаковый зашифрованный результат (зашифрованный текст). В противном случае любая сторона, которая подслушивает, всегда будет знать, когда повторяющееся сообщение было отправлено снова.
2) Вектор инициализации (IV) используется для обеспечения случайности, чтобы один и тот же простой текст не всегда приводил к одному и тому же зашифрованный текст при использовании данного ключа.
3) Это означает, что для дешифрования сообщения вам необходимо знать не только ключ, но и IV.
4) IV должен быть случайным и не получен детерминированно из ключа, в противном случае каждое использование одного и того же ключа будет иметь один и тот же IV, и, таким образом, каждый раз, когда один и тот же простой текст будет зашифрован, будет получаться один и тот же зашифрованный текст. (Оставляя вас уязвимыми для подслушивающих, наблюдающих за результатами получения данного сообщения и начинающих определять значение сообщения).
Посмотрите ответы на этот вопрос Шифрование AES - ключ против IV , а также эту запись в Википедии http://en.wikipedia.org/wiki/Initialization_vector для получения дополнительной информации.