Полагаться исключительно на preg_replace для обеспечения безопасности не очень хорошая идея. Это может быть полезно для обеспечения / стандартизации таких вещей, как номера телефонов или форматы даты.
Алгоритмы типа MD5 и SHA1 предназначены для хеширования. Вы можете использовать его для любых данных, даже для опасного ненадежного ввода, и вы всегда получите шестнадцатеричную строку. Однако, поскольку хеши являются односторонними, вы не можете «расшифровать» их обратно к исходному вводу.
@ dfsq прав - используйте эти методы для безопасного сохранения потенциально опасных данных в вашей базе данных. Единственный случай, когда вы захотите использовать хеш, это что-то вроде паролей, где никто не сможет их расшифровать. (И если вы хешируете свои пароли, убедитесь, что вы их тоже солите!)