Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/4lessandrodev/cesar-cipher
A simple TypeScript library for Caesar cipher encryption and decryption
https://github.com/4lessandrodev/cesar-cipher
cesar-cipher cryptography shift-cipher
Last synced: 7 days ago
JSON representation
A simple TypeScript library for Caesar cipher encryption and decryption
- Host: GitHub
- URL: https://github.com/4lessandrodev/cesar-cipher
- Owner: 4lessandrodev
- Created: 2024-09-05T04:46:35.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-09-10T04:20:14.000Z (2 months ago)
- Last Synced: 2024-09-10T07:05:55.573Z (2 months ago)
- Topics: cesar-cipher, cryptography, shift-cipher
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/cesar-cipher
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
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
```sh
npm i cesar-cipher
# OR
yarn add cesar-cipher
```
#### Usando a lib
```typescript
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:
```typescript
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.