Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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