') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - arkiix/ToasterRSACTFTool: ⚡ Fast and easy RSA tool ⚡ · GitHub
Skip to content

Repository files navigation

ToasterRSATool

Tool to work with the RSA encryption algorithm encrypts, decrypts, recovers the private key by exploiting attacks.

Usage

usage: ToasterRSATool.py [-h] [-n N] [-p P] [-q Q] [-e E] [-d D] [-c C] [-n2 N2] [--key KEY] [--encrypt ENCRYPT]

ArgumentDescription
-h, --helpshow this help message and exit
-n NModule n
-p PFactor p
-q QFactor q
-e EPublic exponent
-d DPrivate exponent
-c CCipher text
-n2 N2Second n
--key KEYPath to the key
--encrypt ENCRYPTEncrypt message

Attack/Decrypt RSA

To attack or decrypt RSA provide it with all data you have. In case you provide it with insufficient data for decrypting, the tool will attack.

Encrypt RSA

To encrypt a message use --encrypt "message". Keys are generated and displayed in the console and saved automatically in /keys. To use your own encryption key - add

--key path_to_key

Encryption using generated keys

python3 ToasterRSATool.py --encrypt "Your message"

Encryption with your key

python3 ToasterRSATool.py --key pub.pem --encrypt "Your message"

Decrypt message

python3 ToasterRSATool.py --key private.pem -c 1234567890
python3 ToasterRSATool.py -n 1234567890 -c 1234567890 -d 1234567890

Examples of starting an attack

python3 ToasterRSATool.py -n 1234567890 -e 65537 -c 1234567890
python3 ToasterRSATool.py --key public.pem -e 65537 -c 1234567890
python3 ToasterRSATool.py -n 1234567890 -e 65537 -c 1234567890 -n2 1234567890
python3 ToasterRSATool.py -n 1234567890 -e 65537 -c 1234567890 -p 1234567890
python3 ToasterRSATool.py -n 1234567890 -e 65537 -c 1234567890 -q 1234567890

Installation

Requirements

  • pycryptodome
  • factordb-pycli
  • gmpy2
  • owiener

Ubuntu and Kali specific Instructions

git clone https://github.com/arkiix/ToasterRSACTFTool
cd ToasterRSACTFTool
pip3 install -r requirements.txt
python3 ToasterRSATool.py

MacOS-specific Instructions

If you fail to install it with the help of this command:

pip3 install -r requirements.txt

Try the following one:

easy_install `cat requirements.txt`

About

⚡ Fast and easy RSA tool ⚡

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages