Comparing an audio signal with a previous 'taught/profiled' signal
FFT won't work because it captures too many details which are rather irrelevant to the task. You need to extract a representation of sound which is more or less invariant by pitch and amplitude changes (properties of sound which are irrelevant to your problem). So you need a "blurred" version of the spectrum - and MFCCs are exactly that.

The textbook-ish, baseline system for speaker verification is to extract MFCCs (first coefficient excluded) on the "profile" recording; train a Gaussian Mixture Model on this data. The more data we have in the profile, the better (ideally, the most common phonemes should all be represented).

To score a new recording (during the "recognition" phase), extract the MFCCs, and compute the likelihood of the model given this data (you'll have to normalize by the length of the recording). Compare the score to a threshold - set according to the false positive rate you want to achieve.

For speaker recognition, you train one model per speaker to recognize; and select the speaker associated with the model with the higher score.