Skip to content

4lessandrodev/cesar-cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A simple TypeScript library for Caesar cipher encryption and decryption

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published