Digital Signatures use an asymmetric algorithm, meaning that if I want to apply a digital signature to a document I sign it with my own private key and send it to the recipient.
The recipient, thanks to the public key, can already verify that the message really comes from me: a man in the middle could have intercepted my message, decrypted it thanks to the public key, and forged it.
However, a man in the middle cannot re-encrypt the message since he lacks the private key. So when the message arrives to the recipient and the recipient tries to decrypt the content with the public key, the content would make no sense, because it was re-encrypted by the man in the middle with a key that doesn't match the public key owned by the recipient. So, decoding it with the public key verifies that the proper private key was used to sign the document, thereby verifying the signature's provenance. This method, according to my understanding, is already enough to prove the integrity of the message.
What I do not understand is why SHA256, for example, as a hashing algorithm on top of what is described above is needed.
I understand how SHA256 is used: I send content and its hashed version and the recipient recalculates the hash of the received content by using the same algorithm I used. If the two hashes match then the recipient verified the integrity of the message. But why is this needed if Digital Signatures, as in using Asynchronous Encryption, already prove the integrity?
UPDATE: I wrote my question totally wrong and when I wrote Asynchronous Encryption I meant Asymmetric Algorithm. There is no content encryption at all involved in this question but just the Asymmetric Algorithm, hence the public-private key pair.