12V pulses into 5V pulses
Several methods:

voltage divider (I would suggest 10k/5k, for a 4V swing. This allows for a high margin up to 15V from the sensor.)
resistor and zener diode
drive an n-channel MOSFET gate, pull up the output to 5V
use that same MOSFET as a down-shift level translator
use an optoisolator

The method you choose depends on how much electrical noise your environment has. If it’s a car or motorcycle engine, this might be a lot.
There are combo solutions such as using a voltage divider and a zener and a transistor or FET to condition the signal. That said, the optoisolator is the most robust solution as it breaks up any potential current loop between the sensor and your Arduino. It’s also more expensive, but much less than the cost of your fried board.
There's an additional benefit to using an optoisolator: by referring the diode input to the sensor ground, it will reject common-mode noise that might find its way onto the sensor wires.
More here: Detect car +12V using Arduino
And a Littelfuse appnote about automotive noise
MORE: Here's a simulation of common-mode noise with the optoisolator (try it here). I added a Zener to protect the opto LED, it's optional.