Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ See the list below for the name of all individual services.
| `prebid-client-server` | Prebid Client Server | 3052 | http://localhost:3052 |
| `prebid-client-side-deferred` | Prebid Client Side Deferred | 3053 | http://localhost:3053 |
| `prebid-secure-signals-client-side` | Prebid Secure Signals | 3061 | http://localhost:3061 |
| `hashing-tool` | Hashing Tool | 3071 | http://localhost:3071 |

---

Expand Down
11 changes: 10 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,13 @@ services:
env_file:
- .env


# tools
hashing-tool:
build:
context: tools/hashing-tool
dockerfile: Dockerfile
ports:
- "3071:3071"
container_name: hashing-tool
env_file:
- .env
8 changes: 8 additions & 0 deletions siteDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,14 @@ const sites = [
port: 3061,
description: 'Prebid Secure Signals Client Side',
},

// Tools
{
name: 'hashing-tool',
domain: 'hashing-tool.sample-dev.com',
port: 3071,
description: 'Hashing Tool',
},
];

// Export for CommonJS (used by createCA.ts)
Expand Down
25 changes: 25 additions & 0 deletions tools/hashing-tool/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM nginx:alpine

# Install gettext for envsubst
RUN apk add --no-cache gettext

# Copy static files
COPY index.html /usr/share/nginx/html/index.html
COPY app.css /usr/share/nginx/html/app.css

# Copy entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Configure nginx to serve on port 3071
RUN echo 'server { \
listen 3071; \
location / { \
root /usr/share/nginx/html; \
index index.html; \
} \
}' > /etc/nginx/conf.d/default.conf

EXPOSE 3071

ENTRYPOINT ["/entrypoint.sh"]
38 changes: 38 additions & 0 deletions tools/hashing-tool/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# UID2/EUID Hashing Tool

A tool to verify that your implementation is normalizing and hashing email addresses and phone numbers correctly for UID2 and EUID.

> **Note:** The normalization and hashing logic is identical for both UID2 and EUID.

## Running Locally

### Using Docker Compose

From the repository root:

```bash
docker-compose up -d hashing-tool
```

Access at: http://localhost:3071

### Using the Reverse Proxy (HTTPS)

```bash
docker-compose up -d
```

Access at: https://hashing-tool.sample-dev.com (requires hosts file and certificate setup — see [reverse-proxy README](../reverse-proxy/README.md))

## Usage

1. Select **Email** or **Phone Number**
2. Enter the value to hash
3. Click **Enter**
4. View the normalized value, SHA-256 hash, and base64-encoded result

## Documentation

- [UID2 Normalization and Encoding](https://unifiedid.com/docs/getting-started/gs-normalization-encoding)
- [EUID Normalization and Encoding](https://euid.eu/docs/getting-started/gs-normalization-encoding)

Loading