SHA512
Descrição
A função SHA512 converte uma string em um hash hexadecimal SHA-2 de 512 bits. É a opção mais robusta entre as funções de hash disponíveis no AMPscript, gerando uma saída de 128 caracteres hexadecimais. Útil quando você precisa criar identificadores únicos e irreversíveis a partir de dados de clientes, como e-mails ou CPFs, para integrações ou reconciliação de dados entre sistemas onde a segurança do hash é prioridade.
Sintaxe
SHA512(@stringToConvert)
SHA512(@stringToConvert, @charSet)
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| stringToConvert | string | Sim | A string que será convertida para o hash SHA-2 de 512 bits. |
| charSet | string | Não | O conjunto de caracteres usado na codificação. O valor padrão é UTF-8, mas também aceita UTF-16. |
Exemplo básico
Gerando um hash SHA-512 do e-mail de um cliente para usar como identificador único em integrações com plataformas de mídia:
%%[
SET @email = "[email protected]"
SET @hashEmail = SHA512(@email)
]%%
Hash do e-mail: %%=v(@hashEmail)=%%
Saída:
Hash do e-mail: 495a8104eef74ae73518705a8227555b596958343b4506860f1925a9cd7056e25473306a9d5ab841147d41cb7476dd965ab37f21bd379d625d42b40f18ef3356
Exemplo avançado
Criando um hash SHA-512 com codificação UTF-16 a partir do CPF do cliente, combinando com Lowercase e Trim para normalizar o dado antes de gerar o hash - cenário comum em réguas de relacionamento que precisam reconciliar dados com um DMP ou CDP:
%%[
SET @cpfOriginal = AttributeValue("CPF")
SET @emailOriginal = AttributeValue("EmailAddress")
/* Normaliza o e-mail antes de gerar o hash */
SET @emailNormalizado = Lowercase(Trim(@emailOriginal))
/* Hash SHA-512 padrão (UTF-8) para matching com plataforma de mídia */
SET @hashEmailUtf8 = SHA512(@emailNormalizado)
/* Hash SHA-512 com UTF-16 para integração com sistema legado do Banco Brasilão */
SET @hashEmailUtf16 = SHA512(@emailNormalizado, "UTF-16")
/* Hash do CPF para reconciliação de base */
SET @hashCpf = SHA512(@cpfOriginal)
]%%
<table>
<tr>
<td>Cliente: %%=v(@emailNormalizado)=%%</td>
</tr>
<tr>
<td>Hash UTF-8: %%=v(@hashEmailUtf8)=%%</td>
</tr>
<tr>
<td>Hash UTF-16: %%=v(@hashEmailUtf16)=%%</td>
</tr>
<tr>
<td>Hash CPF: %%=v(@hashCpf)=%%</td>
</tr>
</table>
Saída:
Cliente: [email protected]
Hash UTF-8: 495a8104eef74ae73518705a8227555b596958343b4506860f1925a9cd7056e25473306a9d5ab841147d41cb7476dd965ab37f21bd379d625d42b40f18ef3356
Hash UTF-16: 82fdb746ae8cc9a50b4da8e92706e41ef9d242a66c3d40a2a698124583f81769f35226679edbd2fa05c900a6c9ab8337b31f8fcc6f9f9cdfa56001899f758d8a
Hash CPF: [hash de 128 caracteres hexadecimais correspondente ao CPF]
Observações
⚠️ Atenção: O hash gerado com
UTF-8é diferente do gerado comUTF-16para a mesma string de entrada. Se você está integrando com um sistema externo, confirme qual charset ele espera - caso contrário, os hashes não vão bater e a reconciliação vai falhar.
💡 Dica: Sempre normalize os dados antes de gerar o hash. Aplique Lowercase e Trim na string de entrada para garantir que
"[email protected]"e"[email protected]"gerem o mesmo hash. Sem essa normalização, qualquer diferença de maiúscula, espaço ou formatação resulta em um hash completamente diferente.
💡 Dica: SHA-512 é um hash de mão única - não existe função para reverter o hash e recuperar o valor original. Se você precisa de criptografia reversível, considere usar EncryptSymmetric e DecryptSymmetric.
Funções relacionadas
- SHA256 - hash SHA-2 de 256 bits, uma alternativa mais curta quando 512 bits não é requisito
- SHA1 - hash SHA-1 de 160 bits
- MD5 - hash MD5 de 128 bits
- Base64Encode - codificação Base64 (não é hash, é reversível)
- EncryptSymmetric - criptografia simétrica reversível para quando você precisa descriptografar depois