I'm interacting with a computer and the return high (1) is at 12V but I need it to ~5V. What is the best way to lower the voltage without affecting the signal (serial) ? I already thought of a voltage divider but I was wondering if there is a better way ...
If your connection is one way only and you are fine not insulating your device from your computer then a voltage divider is cheap and perfectly fine. Please note that the divider total resistance may affect speed and power consumption, I'd go for a total resistance not higher than \$10k\Omega\$.
If you need two ways communication you might want to look the mighty web for the MAX232 or its many flavours, this chip is designed precisley to achieve your goal. The MAX will not guarantee any insulation at all but it allows two ways communications.
If this is "ordinary" serial communications, I suspect that the 12 volt side will be RS-232 levels, and the 5 volt side will be UART logic levels. If so, you will need a MAX-232 or similar RS-232 driver/receiver, as the 5 volt logic levels will be inverted relative to the 12 volt RS-232 levels.
The MAX-232 and similar RS-232 line driver/receivers invert the signals, as well as providing the required voltage swing changes.
If you only want to convert from the 12 volt signal to the 5 volt, you can probably get away with a transitor (for the inversion) and a couple of resistors (base and pull-up).