Many BBS services don't support Archive Operations yet. When you have the need to Archive some messages you posted, but prefer not removing right away. This project provides a solution to Encrypt your message. You could update your post with Ciphered Message, and keep the Key somewhere for later Decryption. This project, for your convenience, takes a natual language text string as the Key instead of a HEX string.
(Original Message) --- [Compression] ---
|
(Natual Language Key String) --- [SHA256] --- [HEX Key] --- |
| --- [AES-256-CTR Cipher] --- (Archived Cipher Message)
(HEX IV) ---
What's the pursuit of every Clearing Houses?
No Default !
ARCHIVE TIME: 2025-11-06 15:52:48
DE-ARCHIVE INSTRUCTION: https://github.com/davychxn/BBS-MSG-ARCHIVER
ENCRYPTION ALGORITHM: AES-256-CTR
PADDING: NONE (stream mode)
NOTE: Compatible with CyberChef (full 16-byte counter, big-endian)
-- KEY --
KEY TEXT: <YOUR KEY TEXT HIDDEN>
KEY (hex): b2b9595e940627cf48ac78c28cf102b90a335b3a3dbd85f6ce17c848e890c8aa
-- IV / NONCE --
FULL IV (hex): 0123456789ABCDEF0123456789ABCDEF
-- ARCHIVED TEXT --
ARCHIVED TEXT (base64):
o3WyjlGiYsfYl3d4b+20Cvkm0MoV6/oD3jZHUf0FABk2dTd2m2rmhFNNIl3BSlXZz9g4+w==
- Clone the Project to your local drive.
- (Optional) Install Python dependent packages:
python -m pip install --upgrade pip
python -m pip install cryptography
- Copy
Original Messageto./encrypt_input.txt. - Write your Natual Language
Key Stringto./key.txt. - (Optional) Environment Preparation.
- Run in System Cmd Console:
python bbs_msg_archiver.py- Update complete content of
./archive_output.txtto your BBS Post.
- Copy
Archived Cipher Messageonly from FieldARCHIVED TEXT (base64)of./archive_output.txtto./encrypt_output.txt:
-- ARCHIVED TEXT --
ARCHIVED TEXT (base64):
[[[ARCHIVED CIPHER MESSAGE HERE]]]
- Write your Natual Language
Key Stringto./key.txt. - (Optional) Environment Preparation.
- Run in System Cmd Console:
python bbs_msg_dearchiver.py- Get
Original Messagefrom./decrypt_output.txt.
-
Open CyberChef: https://gchq.github.io/CyberChef/
-
Copy content of CyberChef Decryption Recipe to
Recipe, and LOAD:
-
Do the following values copy:
| COPY | FROM (FILE: archive_output.txt) | TO (CyberChef: AES Decrypt UI) |
|---|---|---|
| FIELDS | KEY (hex) |
Key (HEX) |
| FIELDS | FULL IV (hex) |
IV (HEX) |
| FIELDS | ARCHIVED TEXT (base64) |
Input |
Change input Argument key_text_replacer of Class Archive's Constructor in ./bbs_msg_archiver.py
| key_text_replacer | Functionality | Seen In Archived Message | |
|---|---|---|---|
None |
Show Key Text | <KET TEXT> (content of ./key.txt) |
|
"" (Empty str) |
Hide Key Text | <YOUR KEY TEXT HIDDEN> |
|
"<Customized Message>" (Non-Empty str) |
Show Customized Message | <Customized Message> |
Run in System Cmd Console:
python cleanup_output_only.pyRun in System Cmd Console:
python cleanup_all.py| Input/Output | Filename | Usage |
|---|---|---|
| Input | ./encrypt_input.txt |
Original Message |
| Input | ./key.txt |
Key String (Natual Language) |
| Output/Input | ./encrypt_output.txt |
Archived Cipher Text + IV |
| Output | ./encrypt_output_ciphertext_only.txt |
Archived Cipher Text Only (Without IV) |
| Output | ./archive_output.txt |
Archived Cipher Text To Update To BBS (With Decrypt Information) |
| Output | ./decrypt_output.txt |
De-Archived Original Message |
python bbs_msg_archiver.pypython bbs_msg_dearchiver.pypython cleanup_output_only.pypython cleanup_all.pypython -m pip install --upgrade pip
python -m pip install cryptography
Contributions are welcome! Please submit a pull request for any enhancements or bug fixes.
This project is dual-licensed:
- Open Source: Under the GNU Lesser General Public License v3.0 (LGPL-3.0) — free for non-commercial and open-source use.
- Commercial Use: A commercial license is available for closed-source projects, enterprise deployment, or relieve from compliance obligations.
View Commercial License Options
If you're using this library in a commercial product and want to:
- Keep your source code private
- Avoid LGPL distribution requirements
- Get professional support


