A simple and secure rust command-line tool to protect your text by encrypting and decrypting it using the robust AES-256 algorithm.

Overview

Secret Keeper

A simple and secure command-line tool to protect your text by encrypting and decrypting it using the robust AES-256 algorithm. Built with Rust and GPT4.

Installation

cargo install secretkeeper

Usage

sk encrypt <text> <password>
sk decrypt <text> <password>

Ensure you keep the password safe; without it, you will not be able to recover the original text from the encrypted data.

This Rust-based command-line tool provides a simple yet secure way to encrypt and decrypt text using the AES-256 algorithm in CBC mode with PKCS7 padding. By taking an action (encrypt or decrypt), the input text, and a password, it offers an effective method to protect sensitive information. The encryption process involves hashing the provided password to create a 32-byte key, generating a random initialization vector (IV), and then encrypting the input text. The output is presented as a hexadecimal string, which combines the IV and the encrypted text, ensuring security during data storage or transmission.

The decryption process requires the same password that was used for encryption, ensuring that only users with the correct password can access the original content. The tool first separates the IV and the encrypted text from the provided input data. Then, it creates a cipher using the hashed password and the IV to decrypt the text. If the decryption is successful, the tool outputs the decrypted text, allowing users to recover their original information. To ensure the tool's usability and efficiency, the encryption and decryption functionalities have been separated into two distinct functions, improving the overall structure and maintainability of the code.

Overall, this encryption tool offers a straightforward and secure solution for users looking to protect their sensitive data with a widely-used cryptographic algorithm. The use of AES-256 in CBC mode, along with PKCS7 padding and a random IV, provides strong security against potential attacks. The command-line interface makes the tool easy to use and integrate into various workflows, while the code enhances the maintainability for future updates or customizations.

You might also like...
Fast(er) AES-based constructions for WebAssembly and Rust.

Fast(er) AES-based constructions for Rust and WebAssembly AEGIS-128L AEGIS-256 AES-128-CTR AES-256-CTR AES-128-OCB AES-256-OCB AES-128-GCM AES-256-GCM

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

User-friendly secure computation engine based on secure multi-party computation
User-friendly secure computation engine based on secure multi-party computation

CipherCore If you have any questions, or, more generally, would like to discuss CipherCore, please join the Slack community. See a vastly extended ver

A simple command-line application to securely store secrets using encryption

rust-secret-vault A simple yet robust command-line tool designed to safely encrypt and store your sensitive information. Harnessing the power of AES-2

An efficient, robust, and generalized batch submission service for rollup stacks written in pure rust.
An efficient, robust, and generalized batch submission service for rollup stacks written in pure rust.

archon is an efficient, robust, and generalized batch submission service for rollup stacks written in pure rust. Note Archon is primarily tested again

The fast, light, and robust client for the Ethereum mainnet.

OpenEthereum Fast and feature-rich multi-network Ethereum client. ยป Download the latest release ยซ Table of Contents Description Technical Overview Bui

The fast, light, and robust client for Ethereum-like networks.

The Fastest and most Advanced Ethereum Client. ยป Download the latest release ยซ Table of Contents Description Technical Overview Building 3.1 Building

Rapid, reliable and robust template management

Rapid, reliable and robust template management

Secure your on-chain approvals and sleep with ease.
Secure your on-chain approvals and sleep with ease.

๐Ÿ‡น๐Ÿ‡ท Eth Global Istanbul 2023 Hackaton Project ๐Ÿ‡น๐Ÿ‡ท Table of Contents Table of Contents About The Project Built With Getting Started Installation Cont

Meta-repository for Miscreant: misuse-resistant symmetric encryption library with AES-SIV (RFC 5297) and AES-PMAC-SIV support

The best crypto you've never heard of, brought to you by Phil Rogaway A misuse resistant symmetric encryption library designed to support authenticate

miscreant. 480 Dec 8, 2022
Project Masterpass is a deterministic databaseless key management algorithm, aimed to help those who cannot protect their encryption keys in storage

Project Masterpass (working title) Attention! This project is still under heavy development, and SHOULD NOT be used in practice, as the algorithms cou

Gyorgy Wang 2 Sep 11, 2022
Encrypting references in Rust for stupid reasons.

encrypted-ptr This allows you to encrypt references in Rust! Both normal references, and counted references (aka Arcs) They're stored in-memory with a

Lucy 0 Sep 4, 2022
๐Ÿ” UPLINK is a Rust lightweight (2MB) tool for file transfer and remote management that uses AES-GCM and Envelope Encryption over WebSockets.

UPLINK โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–’โ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘ โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–’โ–“โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘ โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘ โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–’โ–“โ–ˆโ–“โ–’โ–‘โ–‘โ–’โ–“โ–ˆ

Krystian Bajno 5 Sep 28, 2024
A young, simple and naive file crypto lib based on AES.

naive-file-crypto A young, simple and naive file crypto lib based on AES. The MAC implementation is not standard GCM, so it may be vulnerable. All cpu

DF_XYZ 1 Jan 16, 2022
A simple key-value store with a log-structured, append-only storage architecture where data is encrypted with AES GCM.

akvdb A simple key-value store with a log-structured, append-only storage architecture where data is encrypted with AES GCM. Modified from the actionk

Olle W 3 Oct 10, 2022
A simple to use, cross-platform aes encryption

About Project End to End encryption (AES) for multiple languages (cross-platform) with CBC Icon Item ?? Upcoming โš–๏ธ License ?? ChangeLog Usage (rust)

Zot Cryptography 2 Dec 15, 2022
Elliptic-curves - Collection of pure Rust elliptic curve implementations (e.g. P-256, P-384, secp256k1)

RustCrypto: Elliptic Curves General purpose Elliptic Curve Cryptography (ECC) support, including types and traits for representing various elliptic cu

Rust Crypto 386 Dec 27, 2022
NIST P-256 signatures for Cortex-M4 microcontrollers

nisty NIST P256 signatures for Cortex-M4 microcontrollers What is this? Sometimes NIST P256 signatures need to be used. This is an attempt to create a

null 13 Mar 14, 2021