A ver, supongo que todo lo haces bien pero, ¿podrías mostrar mas información?
Por ejemplo, has un SELECT a la BD para comprobar cual es el valor que realmente existe en la BD, e imprime el valor que produce tu función de encriptación que se supone debería producir el mismo resultado.
Es ambiguo lo que mencionas, a menos que cambies la clave, o bien, el tipo de columna para almacenar no sea el correcto es casi imposible saber que te sucede por lo que dices.