class ActiveSupport::MessageVerifier

def valid_message?(signed_message)

verifier.valid_message?(tampered_message) # => false
tampered_message = signed_message.chop # editing the message invalidates the signature

verifier.valid_message?(signed_message) # => true
signed_message = verifier.generate 'a private message'
verifier = ActiveSupport::MessageVerifier.new 's3Krit'

with the +MessageVerifier+'s secret.
Checks if a signed message could have been generated by signing an object
def valid_message?(signed_message)
  data, digest = get_data_and_digest_from(signed_message)
  digest_matches_data?(digest, data)
end