How to hash sensitive fields in Elasticsearch and show hash vs original based on user permissions?

We have some fields containing sensitive information, and we do not want all users to see the original values.
We want to store these fields in a hashed form while indexing and control what different users can see.
I have a few questions:

Does Elasticsearch support hashing a field during indexing?
What are the recommended ways to implement hashing of field content at index time?
How does querying behave on hashed fields?
If a field is hashed, can we still search on it?
Can hashed content be decoded back to its original value?

Permission‑based visibility requirement:

User1 (no permission) → Should see only the hashed value
User2 (has permission) → Should see the original clear-text value

Is this possible in Elasticsearch using field‑level security or any other feature?

Thanks in advance!