Socket
Socket
Sign inDemoInstall

peeel

Package Overview
Dependencies
3
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    peeel

Compact data footprint


Version published
Maintainers
1
Created

Readme

Source

peeel

Compact identity footprint

GitHub tag (latest by date) npm GitHub last commit GitHub issues NPM

This is a TypeScript library for building a simple contact data footprint as a hash. It's working in both the browser and a NodeJS environment.

Motivation

For anyone who needs to have consistent ways to compare identity data.

Description

The Peeel™ algorithm is used to create a unique string from complementary data of a contact data (like in the hashData field of the Controllers in the Fruuut™ and Rooot™ systems).

It follows the rules below:

  • each source data must first be normalized according to the Empreinte Sociométrique's standards;
  • the normalized data should then be hashed using the SHA-256 algorithm applied twice;
  • the hashed data should then be concatenated in the exact order of the complementaries' code (eg. hashed date of birth then hashed firstname for dob+firstname);
  • this concatenation should itself be hashed using the SHA-256 algorithm twice to form the final hash data.

The result passed to the hashData field is the hexadecimal string representation of the returned hash.

As of this version, the available complementary data are the following:

  • dob: a date of birth (respecting the ISO format, ie. YYYYMMDD);
  • gender: 1 for male, 2 for female, or 0 for unknown;
  • firstname: a first name;
  • lastname: a last name;
  • middle: the middle names or initials (eg. the F. in John F. Kennedy).

For further details, you might want to check our white paper.

Usage

npm i peeel
import { build, complementariesToString, FIRST_NAME, LAST_NAME, parseComplementaries, Source } from 'peeel'

const firstname: Source = {
  data: 'John',
  complementary: FIRST_NAME
}
const dob: Source = {
  data: '20000101',
  complementary: DATE_OF_BIRTH
}
const [hashData, compl] = build([firstname, dob])

// ae76d56055a9acb1fddde77074dcf5353724cb0f6bcb64110f698b19c34be32b
console.log(hashData)

const complStr = complementariesToString(compl)
// firstname+dob
console.log(complStr)

const complementaries = parseComplementaries(complStr)
console.assert(complementaries === compl)
Dependencies

This library relies on the following dependency:

Besides, to run the tests, you would need to install live-server:

npm i -g live-server

NB: Change the port number if it's alreayd in use on your machine.

License

This module is distributed under a MIT license.
See the LICENSE file.


© 2020-2024 Cyril Dever. All rights reserved.

Keywords

FAQs

Last updated on 08 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc