generate a hash and validate if subset of string belong to that hash I am trying to find if I can generate some encoded data from set of string and compare if the subset belong to that encoded data.
Say
encoded data : 11187bcb32536890a9cb307865b027af565cb2f74b7d498fa4def5c3fde53721 (sha256)
keyitem : item1
item1 sha256 code is : 5f3c4f8580d392e422e7c2f6802674ac27966c98d95c39696e4b2490168e5488

is there any way to check if item1 is part of this encoded data without deciphering it ?
I do not want to use base64_encoding. Looking for little bit robust way of doing this.
In case hash is shorter than strings that are hashed it is not possible.
Suppose there is such algorithm $isSubstring(x, h)$ that tells if a string $x$ is a substring of a string $S$ whose hash is $h$.
If hash is shorter than message, then there are at least 2 different strings $A$ and $B$ that both produce the same hash $H$: 
$hash(A) = hash(B) = H$
Sinse $A$ is a substring of itself, it holds 
$isSubstring(A, hash(A)) = isSubstring(A, H) = true$
Sinse $B$ is a substring of itself, it holds 
$isSubstring(B, hash(B)) = isSubstring(B, H) = true$
Then:
$isSubstring(B, hash(A)) = isSubstring(B, H) = true$
This means, $B$ is substring of $A$.
Also:
$isSubstring(A, hash(B)) = isSubstring(A, H) = true$
This means, $A$ is substring of $B$.
Thus, $B$ is substring of $A$ and $A$ is substring of $B$. This is only possible if $A$ and $B$ are equal. But we choose $A$ and $B$ that are not equal. This means that the assumption that such function exists is wrong.