Rewrote sha256crypt from scratch