1001Ferramentas
🆔 Text

Anonymize CPFs in List

Replace CPFs with masked version (123.***.***-45), keeping only first 3 and last 2 digits. Per LGPD practice.

Masking CPFs before sharing a file

You have to send a customer list to another team, attach a report to a support ticket or paste part of a spreadsheet into a chat, and the full CPF cannot go along. Paste the block of text and every CPF comes out as 123.***.***-09, with consistent punctuation even when the source had none. The result updates as you type.

Here is the part nobody mentions: the mask keeps the first three digits and the last two, and those last two are the check digits, computed from the first nine. Six digits stay hidden, a million combinations, but only about ten thousand of them are consistent with the check digits left in plain sight. That is pseudonymization: it lowers exposure, it does not make the number unrecognizable.

Review the output, because the search looks for eleven digits in a row and never verifies that they form a valid CPF. A Brazilian mobile number with area code also has eleven digits and becomes 119.***.***-21. An unpunctuated CNPJ, fourteen digits, comes out worse: the first eleven get masked and the rest trails behind; with dots and slash it passes untouched. The mask is fixed, and everything happens in your browser.

Frequently asked questions

Does this make the list anonymous under Brazilian LGPD?
Masking lowers exposure, but if you still hold the original database the link between person and record remains. Treat the output as pseudonymized personal data and confirm the pattern with whoever handles privacy at your organization.
Does the tool validate the CPF before masking it?
No. Any run of eleven digits gets masked, valid or not. Use a CPF validator if you need the check digits verified.
Are the CPFs I paste sent to a server?
No. The replacement runs in your own browser, and the page script makes no network request with the text.

Related Tools