Of my experiences researching stuff before as I was tasked to design the process of getting rid of old HDDs at my last employer (datacenter):
- Todays HDDs mostly use PRML recording
- The magnetic field their own heads are able to generate are several magnitudes stronger than what most external magnets can do, unless they are pulsed
Therefore for wiping a disk clean, I had some talk with a data recovery lab and they also told me, that after a wiping where every sector has been touched (bit flipped) they won't be able to recover that. I asked to that getting in written, and the sentence addendum "in civilian data recovery" irrritated me a little bit ;-)
So: As long as a HDD will work, use a software that does 3 tries to overwrite every sector with bit complements. ASCII "0" is not digital null...
The DoD Short algorithm usually is more than sufficient for that.
But beware: A HDD usually has reserve/spare sectors, that get exchanged for bad sectors- if the wiping software cannot get to them (maybe because running from some plain operating system with standard drivers) this area will not be handled.
Other solution: Degauss it with special equipment, basically you generate some electromagnetic shock that will destroy every information on the platter, including the factory-written servo track- but at the factory a HDD can be low-levelled and would be good for re-use as refurbished part...