logo

Seznam pro vývojáře

Identita

Seznam pro vývojářeIdentitaHashovací funkce

Hashovací funkce

Pokud si chcete email hashovat sami, připravili jsme pro vás ukázky kódů pro použití v různých jazycích. Každá metoda obsahuje jediný parametr, ve kterém očekává emailovou adresu v "plaintextu".

Validace hodnoty vkládané do parametru funkce je silně doporučena.


Ukázky kódů

JavaScript

const crypto = require('crypto');

function hashEmail(email) {
    email = email.trim().toLowerCase();
    const utf8Email = Buffer.from(email, 'utf-8');
    const hash = crypto.createHash('sha256').update(utf8Email).digest('hex');
    return hash;
}

Python

import hashlib

def hash_email(email):
    email = email.strip().lower()
    utf8_email = email.encode('utf-8')
    email_hash = hashlib.sha256(utf8_email).hexdigest()
    return email_hash

PHP

function hashEmail($email){
    $email = strtolower(trim($email));
    $utf8Email = mb_convert_encoding($email, 'UTF-8');
    $hash = hash('sha256', $utf8Email);
    return $hash;
}

Java

public static String hashEmail(String email) {
    try {
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        byte[] hash = digest.digest(email.trim().toLowerCase().getBytes(StandardCharsets.UTF_8));
        return String.format("%064x", new BigInteger(1, hash));
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}

C#

public static string HashEmail(string email)
{
    using (var sha = new System.Security.Cryptography.SHA256Managed())
    {
        byte[] textData = System.Text.Encoding.UTF8.GetBytes(email.Trim().ToLower());
        byte[] hash = sha.ComputeHash(textData);
        return BitConverter.ToString(hash).Replace("-", String.Empty).ToLower();
    }
}