Hash File
file.hash
Overview
You supply exactly one of a managed file reference, UTF-8 text, or Base64-encoded bytes; we compute one or more digests (SHA-256/384/512, SHA3-256/512, MD5) in a single pass. Output encoding is hex (default) or Base64. Algorithm tokens accept both short (sha256) and dashed (SHA-256) spellings. MD5 is for legacy checksums only and is flagged as non-cryptographic in metadata. Do not use this for password hashing or signature verification.
Deterministic hashing underpins integrity, deduplication, and caching — you should not reimplement it in every agent.
Reliability
Deterministic — identical bytes always produce identical digests, so retrying a call is safe and costs you only the recomputation. A fileRef resolves inside your own tenant only, and once it has expired we can no longer read it: you get a validation error saying the reference is not found or not accessible, and the fix is to upload the file again and hash the fresh reference. The remaining validation errors need an input change rather than a retry: sending none or more than one of fileRef, text, and contentBase64, an algorithm token outside the supported list, malformed Base64, text over 1,048,576 characters, and content or a file over 500 MiB.
Context footprint
Returns digests keyed by algorithm, byte count, and encoding metadata. A successful call costs 5 execution credits.
When to use it
When you need one or more digests of known content.
For password hashing, HMAC, or signature verification.
Scope
Non-goals
- Does not verify digital signatures
- Does not hash passwords (use security.password_hash)
- Does not treat MD5 as a security hash
Properties
Capabilities
Cost & billing
Flat rate per invocation
File handling
File limits
Constraints this skill applies to your input and generated files. The “Limited by” column shows the static source of each cap; none of these can be raised by upgrading your plan.
| Limit | Value | Limited by |
|---|---|---|
| Maximum size per input file | 50 MiB | Platform maximum |
How we handle your data
What this means
This skill may temporarily store files or intermediate data only to complete execution. Temporary data is protected and automatically deleted.
Squillify guarantees
- Runs inside Squillify
- This skill runs inside Squillify.
- Payloads are not sent to an external service by this skill.
- Temporary execution only storage
- Squillify does not permanently store submitted payloads.
- Telemetry records metadata only, not submitted content.
- Submitted payloads are not used for training.
- Submitted payloads are not reviewed by humans.
- This skill does not target sensitive data.
- The response may contain submitted or transformed content.
Your responsibility
Squillify does not determine whether submitted content is sensitive. Your application is responsible for deciding what data it is allowed to submit. Your application is responsible for securing the response.
Input schema
| Field | Type | Required | Description |
|---|---|---|---|
| fileRef | string | No | Managed file reference streamed up to 500 MiB. Required unless text or contentBase64 is provided. |
| text | string | No | UTF-8 text hashed as its UTF-8 bytes, up to 1048576 characters. Required unless fileRef or contentBase64 is provided. |
| contentBase64 | string | No | Base64-encoded bytes hashed after decode, up to 500 MiB decoded. Required unless fileRef or text is provided. |
| algorithms | array | No | Bounded array of 1 through 8 algorithm tokens; omit it to use algorithm or sha256. |
| algorithm | string | No | Single algorithm token when you want one digest; omit it whenever algorithms is sent, and omit both for sha256. |
| encoding | string | No | How each digest is rendered; omit it for hex. |
| outputEncoding | string | No | Alias for encoding; encoding wins if both arrive, and omit both for hex. |
Output schema
| Field | Type | Required | Description |
|---|---|---|---|
| ok | boolean | Yes | Always true on success. |
| hashes | object | Yes | Purpose-bound digest map keyed by canonical short algorithm name; extra keys are sha256, sha384, sha512, sha3-256, sha3-512, or md5. |
| sizeBytes | integer | Yes | How many bytes were hashed. |
| metadata | object | No | Closed hashing metadata with encoding and an optional MD5 warning. |
API contract
POST /v1/executecurl -sS -X POST "$BASE/v1/execute" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"skillKey":"file.hash","input":{"text":"abc","algorithms":["sha256"]}}'import { Squillify } from "@squillify/sdk";
const sq = new Squillify({ apiKey: process.env.SQUILLIFY_API_KEY });
const { output } = await sq.execute("file.hash", {"algorithms":["sha256"],"text":"abc"});Errors
| Code | HTTP | Retryable | Description |
|---|---|---|---|
| VALIDATION_ERROR | 400 | No | The request payload failed schema validation. |
| UNAUTHORIZED | 401 | No | Missing or invalid API key. |
| SKILL_NOT_ACCESSIBLE | 403 | No | The API key is not granted access to this skill. |
| SKILL_NOT_AVAILABLE_FOR_PLAN | 403 | No | This skill is not included in your current plan. |
| PLAN_ELIGIBILITY_UNAVAILABLE | 503 | Yes | Plan eligibility could not be decided. Retry after backoff. |
| SKILL_NOT_FOUND | 404 | No | The requested skill or version does not exist. |
| TENANT_RATE_LIMITED | 429 | Yes | Request rate limit exceeded. Retry after backoff. |
| QUOTA_EXCEEDED | 429 | Yes | Plan quota exhausted. Retryable once the quota period resets. |
| EXECUTION_TIMEOUT | 504 | Yes | Execution exceeded the allowed time budget. |
Other limits
| Limit | Value |
|---|---|
| Recommended inline bytes | 32 KiB |
Limitations
- Does not verify digital signatures
- Does not hash passwords (use security.password_hash)
- Does not treat MD5 as a security hash
- Password or secret hashing
- Signature verification
How to call
POST /v1/execute (requires authentication)
{
"skillKey": "file.hash",
"input": {
"algorithms": [
"sha256"
],
"text": "abc"
}
}Examples
SHA-256 of inline text (known test vector for abc)
{
"algorithms": [
"sha256"
],
"text": "abc"
}{
"ok": true,
"hashes": {
"sha256": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
},
"metadata": {
"encoding": "hex"
},
"sizeBytes": 3
}Multiple digests with Base64 output encoding
{
"text": "abc",
"algorithms": [
"sha256",
"md5"
],
"encoding": "base64"
}{
"ok": true,
"hashes": {
"md5": "kAFQmDzST7DWlj99KOF/cg==",
"sha256": "ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0="
},
"metadata": {
"md5": "MD5 is non-cryptographic; use only for legacy checksums or non-adversarial dedup",
"encoding": "base64"
},
"sizeBytes": 3
}Recommended use cases
- Integrity checks before transfer or ingestion
- Content deduplication keys
- Audit trails and cache keys
Avoid for
- Password or secret hashing
- Signature verification
Related skills
Composable with
Safety & privacy
- Runs without calling any external service.
- Your payloads are never stored permanently.
- Telemetry captures metadata only — never your payload contents.
- We never train models on your payloads.
- No human reviews your payloads.