online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
import math import secrets # ==================== 1. Primzahlgenerator ==================== def is_prime_fermat(n): """Einfacher Fermat-Test zur Basis 2""" if n < 2: return False if n == 2: return True if n % 2 == 0: return False return pow(2, n - 1, n) == 1 def generate_prime(bits=512): """Generiert eine zufällige ungerade Primzahl der gewünschten Bitlänge""" while True: # Höchstes Bit setzen (garantiert Bitlänge) & unterstes Bit (garantiert ungerade) candidate = ( (1 << (bits - 1)) | secrets.randbelow(1 << (bits - 1)) | 1 ) if is_prime_fermat(candidate): return candidate # ==================== 2. Schlüsselgenerierung ==================== def generate_rsa_keys(bits=1024): half_bits = bits // 2 p = generate_prime(half_bits) q = generate_prime(half_bits) while q == p: q = generate_prime(half_bits) N = p * q phi = (p - 1) * (q - 1) # Zufälliges e in der Größenordnung von N suchen (ggT(e, phi) == 1) e = secrets.randbelow(N) | 1 while math.gcd(e, phi) != 1: e += 2 # Geheimer Exponent d via Modulo-Inversum d = pow(e, -1, phi) return (N, e), (N, d), p, q # ==================== 3. Ver- & Entschlüsselung ==================== def encrypt(m, public_key): N, e = public_key return pow(m, e, N) def decrypt(c, private_key): N, d = private_key return pow(c, d, N) # ==================== Demo / Ausführung ==================== if __name__ == "__main__": print("=== RSA-1024 Demonstration (reines Python) ===\n") # Keygen (1024 Bit) pub_key, priv_key, p, q = generate_rsa_keys(bits=1024) N, e = pub_key _, d = priv_key print(f"Primzahl p ({p.bit_length()} Bit): {p}") print(f"Primzahl q ({q.bit_length()} Bit): {q}") print(f"Modul N ({N.bit_length()} Bit): {N}") print(f"Exponent e ({e.bit_length()} Bit): {e}") print(f"Exponent d ({d.bit_length()} Bit): {d}") print("-" * 70) # Nachricht als Text text_nachricht = "Hello World" m = int.from_bytes(text_nachricht.encode("utf-8"), byteorder="big") print(f'Original Text: "{text_nachricht}"') print(f"Nachricht als Int: {m}") # Verschlüsseln c = encrypt(m, pub_key) print(f"Verschlüsselt (c): {c}") # Entschlüsseln m_dec = decrypt(c, priv_key) text_dec = m_dec.to_bytes( (m_dec.bit_length() + 7) // 8, byteorder="big" ).decode("utf-8") print(f"Entschlüsselt (Int): {m_dec}") print(f'Entschlüsselt Text: "{text_dec}"') print("-" * 70) if m == m_dec: print("✅ ERFOLG: Die Nachricht wurde korrekt ver- und entschlüsselt!") else: print("❌ FEHLER: Die Nachricht stimmt nicht überein!")

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue