I prefer to use BINARY(32) since it's the optimized way!
You can place in that 32 hex digits from (00 to FF).
Therefore BINARY(32)!
It will be fixed 64 chars, so use char(64)
Encoding options for SHA256's 256 bits:
CHAR(44)
including padding characterCHAR(64)
BINARY(32)
Why would you make it VARCHAR? It doesn't vary. It's always 64 characters, which can be determined by running anything into one of the online SHA-256 calculators.
Source: Stackoverflow.com