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

cesar-cipher

v0.0.5

Published

A simple TypeScript library for Caesar cipher encryption and decryption

Downloads

45

Readme

Criptografia de Substituição com Shift

Este projeto implementa um simples sistema de criptografia e descriptografia de mensagens usando o conceito de substituição por shift (ou cifra de César). O código permite ao usuário criptografar e descriptografar mensagens, aplicando um deslocamento (shift) nas letras do alfabeto.


Conceito

A cifra de César é uma técnica de criptografia que consiste em substituir cada letra de uma mensagem pela letra que se encontra um certo número de posições à frente (ou atrás) no alfabeto. O número de posições é chamado de shift.

Por exemplo, ao criptografar a letra A com um shift de 3, a letra resultante seria D. A mesma técnica pode ser aplicada para descriptografar a mensagem ao usar o shift inverso.

Exemplo de Criptografia

  • Mensagem original: MENSAGEM SECRETA
  • Shift: 3
  • Mensagem criptografada: UEhRVkRKSFArVkhGVUhXRA==

Exemplo de Descriptografia

  • Mensagem criptografada: UEhRVkRKSFArVkhGVUhXRA==
  • Shift: 3
  • Mensagem descriptografada: MENSAGEM SECRETA

Exemplo de Uso

Instalação


npm i cesar-cipher

# OR

yarn add cesar-cipher

Usando a lib


import { crypt } from 'cesar-cipher';


// Criar um objeto de criptografia com um shift de 3
const cipher = crypt(3); // 1 a 25


// Criptografar uma mensagem
const encryptedMessage = cipher.encrypt("OLA MUNDO");
console.log(encryptedMessage); // "Uk9EK1BYUUdS"


// Descriptografar a mensagem criptografada
const decryptedMessage = cipher.decrypt(encryptedMessage);
console.log(decryptedMessage); // "OLA MUNDO"

Tratamento de Erros

  • O valor do shift deve ser um número positivo e menor que o tamanho do alfabeto. Caso contrário, o código lançará um erro.
  • O alfabeto fornecido não pode estar vazio.
  • Se a mensagem contiver caracteres que não fazem parte do alfabeto (como números ou símbolos), esses caracteres serão substituídos por ? na mensagem criptografada ou descriptografada.

Como Funciona a Lógica do Shift

Para aplicar o shift, o código utiliza a seguinte fórmula:


const shiftedIndex = (currentIndex + shift) % totalLetters;

Essa fórmula garante que, ao atingir o final do alfabeto, o deslocamento "dê a volta", começando de novo do início do alfabeto.

Conclusão

Este sistema de criptografia é uma implementação simples e eficaz do método de cifra de César. Ele permite a manipulação de mensagens utilizando um deslocamento em um alfabeto customizável, aplicando boas práticas de programação em TypeScript, como validação de parâmetros e tratamento de erros.