npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cf-email-decode

v0.0.7

Published

A module to deobfuscate email addresses encoded with Cloudflare's Email Address Obfuscation Technique, restoring them to human-readable format

Downloads

18

Readme

cf-email-decode

Description

Email addresses on some websites are obfuscated by Cloudflare's Email Address Obfuscation Technique to prevent bots from scraping them while keeping them visible to humans. Any text that has been obfuscated using this method may be deobfuscated and returned to a human-readable format with the use of the cf-email-decode module.

The encoded text is contained in HTML elements tagged with Cloudflare's email obfuscation attributes. Examples of encoded texts are shown below.

<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8be8e4e5ecf9eafff8a7abf2e4feabede4fee5efabeae5abeeeaf8ffeef9abeeececaa">[email protected]</a>

<a href="/cdn-cgi/l/email-protection#43263b222e332f2603263b222e332f266d202c2e"></a>

Installation

To install the module, run the following command:

npm install cf-email-decode

or

yarn add cf-email-decode

Usage

To decode an encoded email address:

const { decode } = require("cf-email-decode");

const decodedEmail = decode("43263b222e332f2603263b222e332f266d202c2e");
console.log(decodedEmail);

To encode an email address:

const { encode } = require("cf-email-decode");

const encodedEmail = encode("[email protected]");
console.log(encodedEmail);

Encoding and Decoding Process

Caution: This algorithm is not suitable for cryptographic purposes as it is reversible.  It is a basic algorithm used for simple obfuscation and should not be relied upon for secure encryption.

Encoding

  • The first two characters of the encoded string represent the key in hexadecimal format.
  • Each subsequent pair of characters in the encoded string corresponds to a character in the input text, obtained by performing an XOR operation with the key.
  • The result of the XOR operation is converted to hexadecimal and then concatenated to form the encoded text.

Decoding

  • The first two characters of the encoded string represent the key in hexadecimal format, ranging from 1 to 256.
  • Starting from the third character, which is the first character containing data after separating the key, each pair of characters in the encoded string represents a character in the original text.
  • Each pair of characters is converted from hexadecimal to decimal, then an XOR operation is performed with the extracted key to obtain the original ASCII value.- The ASCII values obtained from decoding are concatenated to reconstruct the original text.