Messages may be communicated between a client, or entity originating a request, and a server, or entity responding to the request. The client may send a request message to the server, and the server may send a response message to the client. The client and server may be, for example, two computer systems, two modules on the same computer system, and the like. A problem exists regarding the data integrity and authenticity of messages exchanged between the client and the server. One or both of the client and the server may be concerned regarding the data integrity and authenticity of the messages exchanged. Data integrity may relate to the message content and ensuring that the message received is not a modified version of an original message. Authenticity may relate to the authentication of the sender in that a message received may have been generated by an entity other than the expected sender. In connection with a response received by a client, an attacker may intercept and modify a response originally sent from the server. Thus, the client receives a response having content that has been modified. Rather than intercept a response originally sent by the server, an attacker may also introduce another entity purporting to be the server which generates the response. The latter may occur, for example, if the attacker introduces a module which sends and receives messages in place of the server. Similarly, in connection with requests received by a server, an attacker may intercept and modify an original request or the attacker may otherwise introduce a module which sends and receives messages in place of the requester.