🚀 Project Website & GitHub Repo

SHA-256 Checksum Verification in WiFi GeoGrabber

Overview

This document explains the SHA-256 checksum generation and verification features implemented across the WiFi GeoGrabber ecosystem (Android App, Python Database Combiner, and Python Map Viewer) to enhance database security and integrity.

Features

1. SHA-256 Checksum Generation

2. SHA-256 Checksum Verification

User Workflows

Android App

Export with Checksum

  1. User exports the database from the Android app.
  2. App calculates SHA-256 checksum.
  3. User is prompted to save the checksum metadata file.
  4. Metadata file is saved alongside the database file.

Import with Verification

  1. User imports a database file.
  2. App offers checksum verification if .sha256.json file exists.
  3. User confirms verification.
  4. App verifies algorithm, file size, and checksum.
  5. If all checks pass, import proceeds. Otherwise, import is blocked and the user is notified.

Python Database Combiner

Selecting Databases with Verification

  1. User selects Main Database or adds Source Databases.
  2. If a .sha256.json file exists, user is asked to verify.
  3. Verification is performed automatically.
  4. If verification fails, user can choose to continue or cancel.

After Database Operations

  1. After merge, clean, or repair operations complete successfully.
  2. User is prompted to create/update a SHA-256 checksum.
  3. If accepted, checksum is calculated and metadata file is saved.
  4. Metadata file is saved as <database_name>.db.sha256.json.

Python Map Viewer

Opening Database with Verification

  1. User selects a database file to view.
  2. If a .sha256.json file exists, user is asked to verify.
  3. Verification is performed automatically.
  4. If verification passes, database is loaded normally.
  5. If verification fails, user is warned and can choose to continue or cancel.

Creating Checksum for Existing Database

  1. User opens a database without existing checksum file.
  2. User is asked if they want to create a checksum file.
  3. If accepted, SHA-256 checksum is calculated and saved.
  4. Future openings will use this checksum for verification.

Security Benefits

Example Metadata File

{
  "version": "1.0",
  "algorithm": "SHA-256",
  "filename": "wifiscannerexport_123456.db",
  "checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "fileSize": 1234567,
  "timestamp": 1730476800000,
  "exportedBy": "WiFi GeoGrabber v1.0.2"
}

Implementation Details

Android App

Python Database Combiner (start_combine_dbs.py)

Python Map Viewer (start_plot_gui.py)

Technical Specifications

Best Practices

  1. Always create checksums for databases that will be shared or transferred.
  2. Keep checksum files together with database files when moving or sharing.
  3. Verify checksums before merging databases from untrusted sources.
  4. Update checksums after any database modification operations.
  5. Don’t ignore failed verifications - investigate the cause before proceeding.

Compatibility

Next Steps