Skip to content

A CLI-based Banking Management System built in C++ with file handling (File I/O) for account storage, SHA -256 algo for Hashing PIN s . Includes user authentication, account creation, deposit, withdrawal, and balance inquiry features.

Notifications You must be signed in to change notification settings

shyamdotexe/BANKING-SYSTEM-CPP-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title description author license language
🏦 Banking System (C++ CLI)
A secure, terminal-based banking system written in modern C++ with SHA-256 PIN hashing, CSV-based persistence, and OOP design.
shyamdotexe
MIT
C++20

🏦 Banking System (C++ CLI)

License: MIT
C++20
OpenSSL
Build

A simple, secure, and terminal-based banking application built with modern C++.
This project simulates basic banking operations while emphasizing data security and safe file handling.


✨ Features

  • Account Creation
    • Auto-generates unique account numbers
    • Stores data in a CSV file for persistence
  • Secure PIN Handling
    • PINs are hashed with SHA-256 (OpenSSL)
    • No plain-text storage
  • Transactions
    • Deposit and withdrawal with input validation
  • Safe Data Updates
    • Uses a temporary file for atomic updates
  • User Experience
    • PIN input masking in the console
    • Currency formatting with precision

📋 Requirements

  • C++11 or later compiler
  • OpenSSL installed
  • Windows terminal (for _getch()) — can be adapted for Linux/Mac

🧠 C++ Concepts Used

OOP Principles

  • Classes, objects, and encapsulation
  • Inheritance & virtual function overriding

File Handling

  • Reading/writing CSV files
  • Atomic updates via temporary files

Security

  • SHA-256 PIN hashing
  • Masked input with _getch()

Formatting

  • iomanip (setprecision, fixed) for currency display

Memory Management

  • Smart pointers (std::unique_ptr)

⚙️ Build & Run

# Clone the repository
git clone https://github.com/shyamdotexe/BANKING-SYSTEM-CPP-CLI.git
cd BANKING-SYSTEM-CPP-CLI

# Compile (requires OpenSSL)
g++ banking.cpp -o banking -lssl -lcrypto

# Run
./banking

About

A CLI-based Banking Management System built in C++ with file handling (File I/O) for account storage, SHA -256 algo for Hashing PIN s . Includes user authentication, account creation, deposit, withdrawal, and balance inquiry features.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages