Search Shortcut cmd + k | ctrl + k

- Overview
- Documentation
- Development
- Download Metrics
- FAQ
- Core Extensions
- List of Community Extensions

- scrooge
- bigquery
- httpserver
- ulid
- fuzzycomplete

crypto
Downloads 360this week

Cryptographic hash functions and HMAC

Extension repository on GitHub
Extension descriptor (YAML)

### Installing and Loading

    INSTALL crypto FROM community;
    LOAD crypto;

### Example

    -- Calculate the MD5 hash value of 'abcdef'
    SELECT crypto_hash('md5', 'abcdef');
    ┌──────────────────────────────────┐
    │   crypto_hash('md5', 'abcdef')   │
    │             varchar              │
    ├──────────────────────────────────┤
    │ e80b5017098950fc58aad83c8c14978e │
    └──────────────────────────────────┘

    -- Calculate a HMAC
    SELECT crypto_hmac('sha2-256', 'secret key', 'secret message');
    ┌──────────────────────────────────────────────────────────────────┐
    │     crypto_hmac('sha2-256', 'secret key', 'secret message')      │
    │                             varchar                              │
    ├──────────────────────────────────────────────────────────────────┤
    │ 2df792e08cefdc0ea9900c67c93cbe66b98231b829a5dccd3857a03baac35963 │
    └──────────────────────────────────────────────────────────────────┘

### About crypto

`crypto` provides two functions:

- `crypto_hash` applies cryptographically secure hash functions and returns the result as a hex encoded value.

- `crypto_hmac` calculates the HMAC using a secret key and a specific hash function.

The supported hash functions are:

- `blake2b-512`
- `keccak224`
- `keccak256`
- `keccak384`
- `keccak512`
- `md4`
- `md5`
- `sha1`
- `sha2-224`
- `sha2-256`
- `sha2-384`
- `sha2-512`
- `sha3-224`
- `sha3-256`
- `sha3-384`
- `sha3-512`

### Added Functions

function_name | function_type | description | comment | example
--- | --- | --- | --- | ---
crypto_hash | scalar | Apply a cryptographic hash function specified as the first argument to the data supplied as the second argument. |  | SELECT crypto_hash('md5', 'test');
crypto_hmac | scalar | Calculate a HMAC value |  | SELECT crypto_hmac('sha2-256', 'secret key', 'secret message');