Skip to main content

Hash utility to create Cryptographic Linkage Keys

Project description

CLK Hash

Python implementation of cryptographic longterm key hashing. Supports Python versions 2.7+, 3.5+

This is as described by Rainer Schnell, Tobias Bachteler, and Jörg Reiher in A Novel Error-Tolerant Anonymous Linking Code

codecov Documentation Status Build Status Requirements Status

Installation

Install clkhash with all dependencies using pip:

pip install clkhash

If the installation of bitarray fails on Windows you may need to install the appropriate Visual Studio C++ compiler for your version of Python; this is required because the bitarray library compiles a C extension.

Documentation

https://clkhash.readthedocs.io

CLI Tool

After installation of the clkhash library you should have a clkutil program in your path. Alternatively you can use python -m clkhash.cli.

This command line tool can be used to process PII data into Cryptographic Longterm Keys. The tool also has an option for generating fake PII data, and commands to upload hashes to an entity matching service.

$ clkutil generate 1000 fake-pii-out.csv
$ head -n 4  fake-pii-out.csv
INDEX,NAME freetext,DOB YYYY/MM/DD,GENDER M or F
0,Libby Slemmer,1933/09/13,F
1,Garold Staten,1928/11/23,M
2,Yaritza Edman,1972/11/30,F

A schema is required to hash this data. You can retrieve the default schema with

$ clkutil generate-default-schema fake-pii-schema.json

or you can make your own.

To hash this data using its schema, with the shared secret keys horse and staple:

$ clkutil hash fake-pii-out.csv horse staple fake-pii-schema.json /tmp/fake-clk.json
CLK data written to /tmp/fake-clk.json

Note the keys should only be shared with the other entity - and not with anyone carrying out the record linkage.

To use the command line tool without installing clkhash, install the dependencies, then run:

python -m clkhash.cli

clkhash api

To hash a CSV file of entities using the default schema:

from clkhash import clk, randomnames
fake_pii_schema = randomnames.NameList.SCHEMA
clks = clk.generate_clk_from_csv(open('fake-pii-out.csv','r'), ('key1', 'key2'), fake_pii_schema)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clkhash-0.12.1.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clkhash-0.12.1-py2.py3-none-any.whl (1.9 MB view details)

Uploaded Python 2Python 3

File details

Details for the file clkhash-0.12.1.tar.gz.

File metadata

  • Download URL: clkhash-0.12.1.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.1

File hashes

Hashes for clkhash-0.12.1.tar.gz
Algorithm Hash digest
SHA256 1bba9525b2f85abc87428e0c3d8d762ac822dd9cdcc9ba47e425a5ede559a00d
MD5 0f278978bef76f09c8e6bca33f9f82c5
BLAKE2b-256 46179260dc480e11b15e6d119e850551be8b38cf06c71a80e848d311a62ad289

See more details on using hashes here.

File details

Details for the file clkhash-0.12.1-py2.py3-none-any.whl.

File metadata

  • Download URL: clkhash-0.12.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.1

File hashes

Hashes for clkhash-0.12.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 078168ea1fedf3c4e1cd0d573ce95b540169ba92137b8d1456cb94e206b5b7f1
MD5 8889ae85f625a80c1e59a3482b99fc40
BLAKE2b-256 cb662e5993430b8fce2d12f8ab07ed76cace3eba0f0605e4b0222ce938e6a14f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page