implemented sha256 with testing