Hash Component

Compute hashes of strings using common hash functions
Component key: hash#
DescriptionThe Hash component allows you to compute the hash of a string using a variety of common hash functions (MD5, SHA256, etc).
#
Triggers#
HMAC Webhook TriggerValidate a payload using an HMAC hash function | key: hmacWebhookTrigger
Input | Default | Notes | Example |
---|---|---|---|
Input Response Body string | Default | Notes The body to use for the response | Example {"status":"success"} |
Input Response Content Type string | Default | Notes The Content-Type header to use for the response | Example application/json |
Input HMAC Hash Function string / Required | Default sha256 | Notes | Example md5 |
Input Additional Response Headers string Key Value List | Default | Notes List of key/value pairs to use as additional headers for the response | Example |
Input HMAC Header Name string / Required | Default | Notes The name of the header that contains the HMAC hash of the payload's body | Example x-hmac-sha256 |
Input Secret Key string / Required | Default | Notes The cryptographic secret key used to hash the payload's body. This must be a string or byte array | Example p@$sW0Rd |
Input Response Status Code string | Default | Notes The HTTP status code to use for the response | Example 200 |
HMAC (or hash-based message authentication code) is an authentication mechanism that allows you verify that incoming webhook messages are genuine.
#
How does HMAC work?An external system (yours or a third-party) produces a cryptographic hash of the webhook payload's body using a secret key, and sends the hash as an HTTP header along with the webhook request. Only the external system and your integration know the secret key.
This trigger, then, uses the secret key to produce a hash of the received payload. If the hash generated in the trigger matches the hash sent as a header, the payload is processed. If the hashes do not match, an error is thrown and the integration does not run. This prevents a bad actor from sending bogus payloads to your instances - they cannot spoof an HMAC hash without the correct signing key.
You can read more about HMAC on our blog.
#
Example HMAC SignatureSuppose you would like to sign a JSON payload that reads {"foo":"bar","baz":123,"buz":false}
using the SHA256 hashing algorithm (you can use a number of hashing algorithms, SHA256 being the most common for HMAC).
You've chosen a secret key of secret123
(please use a more complex secret!).
You can generate a hash in NodeJS using the crypto
module:
const body = '{"foo":"bar","baz":123,"buz":false}';const hmac = crypto.createHmac("sha256", "secret123");const hash = hmac.update(body, "utf-8").digest("hex");// Generates 44cfc2defd77a70bedef0228634c45800fce1e678174895e984bd608c221bdb8
Most modern languages have HMAC libraries: NodeJS, Python, PHP, .NET C#.
You can then take that hash and pass it in as a header in a webhook invocation request:
curl https://hooks.prismatic.io/example \ --request POST \ --header "my-hmac-hash: 44cfc2defd77a70bedef0228634c45800fce1e678174895e984bd608c221bdb8" \ --header "content-type: application/json" \ --data '{"foo":"bar","baz":123,"buz":false}'
When you configure your HMAC trigger in Prismatic, then, you can enter secret123
as your HMAC Secret Key, my-hmac-hash
as your HMAC Header Name, and SHA256
as your HMAC Algorithm (you can obviously change those values).
#
Actions#
Compute BLAKE2b512 HashCompute the BLAKE2b512 hash of a string | key: computeblake2b512
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "4386a08a265111c9896f56456e2cb61a64239115c4784cf438e36cc851221972da3fb0115f73cd02486254001f878ab1fd126aac69844ef1c1ca152379d0a9bd", "base64": "Q4agiiZREcmJb1ZFbiy2GmQjkRXEeEz0OONsyFEiGXLaP7ARX3PNAkhiVAAfh4qx/RJqrGmETvHByhUjedCpvQ==" }}
#
Compute BLAKE2s256 HashCompute the BLAKE2s256 hash of a string | key: computeblake2s256
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "7706af019148849e516f95ba630307a2018bb7bf03803eca5ed7ed2c3c013513", "base64": "dwavAZFIhJ5Rb5W6YwMHogGLt78DgD7KXtftLDwBNRM=" }}
#
Compute HashCompute the hash of a string using a hash function | key: computeHash
Input | Default | Notes | Example |
---|---|---|---|
Input Hash Function string / Required | Default sha256 | Notes | Example md5 |
Input Message string / Required | Default | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "b10a8db164e0754105b7a99be72e3fe5", "base64": "sQqNsWTgdUEFt6mb5y4/5Q==" }}
#
Compute HMAC HashCompute an HMAC hash given a message, secret and hash function | key: computeHmac
Input | Default | Notes | Example |
---|---|---|---|
Input Hash Function string / Required | Default sha256 | Notes | Example md5 |
Input Message string / Required | Default | Notes The message to generate a hash of | Example Hello World |
Input Secret Key string / Required | Default | Notes The cryptographic secret key used to hash the payload's body. This must be a string or byte array | Example p@$sW0Rd |
If you plan to send webhook requests to a third-party from Prismatic, you can use the Compute HMAC Hash action to compute the HMAC hash of a given string using a secret key.
#
Output Example Payload{ "data": { "hex": "82ce0d2f821fa0ce5447b21306f214c99240fecc6387779d7515148bbdd0c415", "base64": "gs4NL4IfoM5UR7ITBvIUyZJA/sxjh3eddRUUi73QxBU=", "byteArray": { "type": "Buffer", "data": [ 130, 206, 13, 47, 130, 31, 160, 206, 84, 71, 178, 19, 6, 242, 20, 201, 146, 64, 254, 204, 99, 135, 119, 157, 117, 21, 20, 139, 189, 208, 196, 21 ] } }}
#
Compute MD4 HashCompute the MD4 hash of a string | key: computemd4
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "77a781b995cf1cfaf39d9e2f5910c2cf", "base64": "d6eBuZXPHPrznZ4vWRDCzw==" }}
#
Compute MD5 HashCompute the MD5 hash of a string | key: computemd5
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "b10a8db164e0754105b7a99be72e3fe5", "base64": "sQqNsWTgdUEFt6mb5y4/5Q==" }}
#
Compute MD5-SHA1 HashCompute the MD5-SHA1 hash of a string | key: computemd5-sha1
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "b10a8db164e0754105b7a99be72e3fe50a4d55a8d778e5022fab701977c5d840bbc486d0", "base64": "sQqNsWTgdUEFt6mb5y4/5QpNVajXeOUCL6twGXfF2EC7xIbQ" }}
#
Compute RIPEMD160 HashCompute the RIPEMD160 hash of a string | key: computeripemd160
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "a830d7beb04eb7549ce990fb7dc962e499a27230", "base64": "qDDXvrBOt1Sc6ZD7fcli5JmicjA=" }}
#
Compute SHA1 HashCompute the SHA1 hash of a string | key: computesha1
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "0a4d55a8d778e5022fab701977c5d840bbc486d0", "base64": "Ck1VqNd45QIvq3AZd8XYQLvEhtA=" }}
#
Compute SHA224 HashCompute the SHA224 hash of a string | key: computesha224
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "c4890faffdb0105d991a461e668e276685401b02eab1ef4372795047", "base64": "xIkPr/2wEF2ZGkYeZo4nZoVAGwLqse9DcnlQRw==" }}
#
Compute SHA256 HashCompute the SHA256 hash of a string | key: computesha256
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e", "base64": "pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4=" }}
#
Compute SHA3-224 HashCompute the SHA3-224 hash of a string | key: computesha3-224
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "8e800079a0b311788bf29353f400eff969b650a3597c91efd9aa5b38", "base64": "joAAeaCzEXiL8pNT9ADv+Wm2UKNZfJHv2apbOA==" }}
#
Compute SHA3-256 HashCompute the SHA3-256 hash of a string | key: computesha3-256
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "e167f68d6563d75bb25f3aa49c29ef612d41352dc00606de7cbd630bb2665f51", "base64": "4Wf2jWVj11uyXzqknCnvYS1BNS3ABgbefL1jC7JmX1E=" }}
#
Compute SHA3-384 HashCompute the SHA3-384 hash of a string | key: computesha3-384
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "a78ec2851e991638ce505d4a44efa606dd4056d3ab274ec6fdbac00cde16478263ef7213bad5a7db7044f58d637afdeb", "base64": "p47ChR6ZFjjOUF1KRO+mBt1AVtOrJ07G/brADN4WR4Jj73ITutWn23BE9Y1jev3r" }}
#
Compute SHA3-512 HashCompute the SHA3-512 hash of a string | key: computesha3-512
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "3d58a719c6866b0214f96b0a67b37e51a91e233ce0be126a08f35fdf4c043c6126f40139bfbc338d44eb2a03de9f7bb8eff0ac260b3629811e389a5fbee8a894", "base64": "PVinGcaGawIU+WsKZ7N+UakeIzzgvhJqCPNf30wEPGEm9AE5v7wzjUTrKgPen3u47/CsJgs2KYEeOJpfvuiolA==" }}
#
Compute SHA384 HashCompute the SHA384 hash of a string | key: computesha384
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "99514329186b2f6ae4a1329e7ee6c610a729636335174ac6b740f9028396fcc803d0e93863a7c3d90f86beee782f4f3f", "base64": "mVFDKRhrL2rkoTKefubGEKcpY2M1F0rGt0D5AoOW/MgD0Ok4Y6fD2Q+Gvu54L08/" }}
#
Compute SHA512 HashCompute the SHA512 hash of a string | key: computesha512
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b", "base64": "LHT9F+2v2A6ER7DUZ0HuJDt+t03SFJoKsbkkb7MDgvJ+hT2FhXGeDmfL2g2qj1FnEGRhXWRa4nrLFb+xRH9Fmw==" }}
#
Compute SHA512-224 HashCompute the SHA512-224 hash of a string | key: computesha512-224
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "feca41095c80a571ae782f96bcef9ab81bdf0182509a6844f32c4c17", "base64": "/spBCVyApXGueC+WvO+auBvfAYJQmmhE8yxMFw==" }}
#
Compute SHA512-256 HashCompute the SHA512-256 hash of a string | key: computesha512-256
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "ff20018851481c25bfc2e5d0c1e1fa57dac2a237a1a96192f99a10da47aa5442", "base64": "/yABiFFIHCW/wuXQweH6V9rCojehqWGS+ZoQ2keqVEI=" }}
#
Compute SM3 HashCompute the SM3 hash of a string | key: computesm3
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "77015816143ee627f4fa410b6dad2bdb9fcbdf1e061a452a686b8711a484c5d7", "base64": "dwFYFhQ+5if0+kELba0r25/L3x4GGkUqaGuHEaSExdc=" }}
#
Compute whirlpool HashCompute the whirlpool hash of a string | key: computewhirlpool
Input | Notes | Example |
---|---|---|
Input Message string / Required | Notes The message to generate a hash of | Example Hello World |
#
Output Example Payload{ "data": { "hex": "b77b284bffc952efee36a94397a0ce11e8624668e33b7020a80eb2fb21096f0a08518c50d023de12b010c2e30b93b5837dc471d899608d786fe9a6b60112ea4a", "base64": "t3soS//JUu/uNqlDl6DOEehiRmjjO3AgqA6y+yEJbwoIUYxQ0CPeErAQwuMLk7WDfcRx2JlgjXhv6aa2ARLqSg==" }}