Invariably other system designers (either on your development team or on the Internet) have faced the same problems as you. They may have invested large amounts of time researching and developing robust solutions to the problem. In many cases they will have improved components through an iterative process and learned from common mistakes along the way. Using and reusing trusted components makes sense both from a resource stance and from a security stance. When someone else has proven they got it right, take advantage of it.