What is "blinding" with cryptographic hash functions? What is blinding with a SHA256() or similar cryptographic hash function?
What applications does it have?
An answer to a recent question briefly mentioned &quot;Consider blinding before calling an external function [such as] SHA256()&quot;.
( https://security.stackexchange.com/questions/246209/is-it-safe-to-publish-the-password-hashes-from-my-sha256-md5-custom-password-h/246275#246275 )
The Wikipedia article &quot;blinding (cryptography)&quot;
currently mentions several different types of blinding, including asymmetric encryption, asymmetric digital signatures, and the one-time pad (a kind of symmetric encryption), but never mentions hash functions.
Most applications in that article involved tweaking the plaintext slightly, then running the tweaked plaintext through some (untrusted) function to get some intermediate output, then untweaking to get the final output, in such a way that we get the same final output without the tweaking and untweaking, but without handing over plaintext to the (untrusted) function. Does SHA256() support such tweaking and untweaking?
Whether or not it does, what is the proper approach to blinding with SHA256() or other cryptographic hash functions?
There are at least three possible senses of blinding in crypto in a context involving a hash such as SHA-256. In all cases, the purpose is to hide something (the value, or the true meaning) of some data element manipulated.

Blinding with the hash as a tool used as a black box. The exact meaning depends on the purpose. That can further subdivides into

we only to need to compare data elements for equality, so we can hash them, then compare the hashes
we use the hash output combined (e.g. by XOR) with a data element to mask.


Blinding within the implementation of SHA-256, to thwart attacks trying to find the input of the hash from some side channel, like electromagnetic emission.

Blinding the input of the hash. This is the sense in the linked text



Consider blinding before calling an external function.You're passing your password into the MD5() and SHA256() functions plain-text-style.  If either is backdoor'd, then they get your password.  Consider blinding.

Here the goal seems to be hiding the password from an attacker having hooked the MD5() or SHA256() APIs (that could also be: able to invert these functions with a rainbow table). I think the author is suggesting transforming the password before hashing. That could be XOR-ing it with a secret constant, or applying some rudimentary cipher with a fixed key. This is not crypto, but an attempt to make code harder to reverse-engineer, or attacks more specific, using security by obscurity.