Implementation of the Caesar Cipher encryption algorithm in JavaScript. The Caesar Cipher is a classic substitution cipher technique where each letter in the plaintext is shifted a certain number of places down or up the alphabet.
- TypeScript and JSDoc support
- User-defined alphabets
- Support of array inputs and returns
- Encryption and decryption
npm install @dunkelhaiser/caesar-cipher
yarn add @dunkelhaiser/caesar-cipher
pnpm add @dunkelhaiser/caesar-cipher
bun add @dunkelhaiser/caesar-cipher
With named import
import { CaesarCipher } from "@dunkelhaiser/caesar-cipher";
With named imports
import { encrypt, decrypt } from "@dunkelhaiser/caesar-cipher";
With default import
import CaesarCipher from "@dunkelhaiser/caesar-cipher";
With default import
const CaesarCipher = require("@dunkelhaiser/caesar-cipher");
With named imports
const { encrypt, decrypt } = require("@dunkelhaiser/caesar-cipher");
CaesarCipher.encrypt("Hello My Beautiful World!", 7); // => "Olssv Tf Ilhbapmbs Dvysk!"
CaesarCipher.decrypt("Olssv Tf Ilhbapmbs Dvysk!", 7); // => "Hello My Beautiful World!"
CaesarCipher.encrypt(["Hello", "My", "Beautiful", "World!"], 7); // => ["Olssv", "Tf", "Ilhbapmbs", "Dvysk!"]
If you wish to use a custom alphabet for encryption and decryption, you can provide it as the third parameter:
CaesarCipher.encrypt("Привіт мій прекрасний диво-світ!", 7, "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя"); // => "Цчнзощ уор цчйсчєшфнр їнзх-шзощ!"
If numbers are provided in the alphabet they also will be shifted, otherwise they stay untouched.
CaesarCipher.encrypt("12345", 5); // => "12345"
CaesarCipher.encrypt("12345", 5, "0123456789"); // => "67890"
Name | Type | Argument | Default | Description |
---|---|---|---|---|
input | string | string[] |
<required> |
text to be encrypted | |
shift | number |
<required> |
amount to shift each character by | |
alphabet | string |
<optional> |
abcdefghijklmnopqrstuvwxyz |
alphabet to be used for the cipher |
If you come across a bug or unexpected behavior, please take the time to report it. To file a bug report:
- Check if the issue has already been reported by searching the issues.
- If the issue hasn't been reported yet, open a new issue, providing as much detail as possible, including:
- A clear and concise title.
- A detailed description of the issue.
- Steps to reproduce the problem.
- Expected and actual behavior.
To propose a new feature:
- Check the issues to ensure it hasn't been proposed before.
- Open a new issue, clearly describing the new feature or enhancement you would like to see.
- Provide any relevant details or use cases that will help understand the use of the proposed feature.
To contribute code:
- Fork the repository.
- Create a new branch for your changes with a specific prefix:
git checkout -b feat/your-feature
. Accepted prefixes: feat, fix, refactor, docs. - Make your changes, following the coding style.
- Write unit tests for your changes.
- Update the README or documentation if necessary.
- Submit a pull request to the dev branch of the original repository.
- Provide a detailed description in the pull request, explaining the purpose of your changes.
Copyright (c) 2024 Kyrylo Tymchyshyn
Licensed under the MIT license.