Choose between Validator or Generator mode!
Convert between a valid german IBAN and its underlying German banking identifiers BLZ and KNR.
You may use your german debit card to validate it via IBAN → KNR + BLZ.
To generate a valid IBAN, please use the KNR + BLZ → IBAN.
Sensitive identifiers are masked before persistence for the conversion history database.
Continuous Integration
test_iban_to_knr_blz ... PASSED
test_knr_blz_to_iban ... PASSED
test_invalid_iban ... PASSED
test_invalid_knr_blz ... PASSED
test_validateChecksum ... PASSED
About This Tool
A verified implementation of a German IBAN validator and generator, built on deterministic MIPS execution. Now extended and exposed via a modern web API.
Implementation
- Initial MIPS assembly implementation 2023
- Written in MIPS assembly language
- Executed via MARS simulator
- Verified via local test suite
- Extension Phase 1 2025
- FastAPI backend as a thin execution and validation layer
- Dockerized MIPS environment for reproducible execution
- Automated test suite executed in GitHub CI
- Extension Phase 2 2025
- MIPS core IBAN extended, validation in IBAN to KNRBLZ mode
- Implemented persistent conversion history backed by SQLite
- Added structured logging alongside backend input validation
- Deployed to AWS
German IBAN format
An IBAN (International Bank Account Number) uniquely identifies a bank account and embeds a checksum to detect input errors.
DE AA BBBBBBBB CCCCCCCCCC
- DE — country code
- AA — checksum digits
- BBBBBBBB — BLZ (bank code)
- CCCCCCCCCC — KNR (account number)
Conversion modes
Parses a German IBAN, validates it via verify_iban and then extracts the embedded BLZ and KNR. It uses validate_checksum.
verify_iban, validate_checksum, iban2knr.asmValidates the inputs, computes the checksum using string-based modulo arithmetic, and outputs a fully valid German IBAN.
knr2iban.asm, moduloStr.asm, validateChecksum.asm