JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das für Menschen leicht zu lesen und zu schreiben sowie für Maschinen leicht zu parsen und zu generieren ist. Es basiert auf einer Teilmenge des JavaScript-Programmierstandards. JSON ist ein textbasiertes Format, das vollständig sprachunabhängig ist, aber Konventionen verwendet, die Programmierern der C-Sprachfamilie vertraut sind.
Diese Eigenschaften machen JSON zu einer idealen Datenaustauschsprache für Webanwendungen, APIs und Konfigurationsdateien. Es hat sich zum De-facto-Standard für den Datenaustausch im Web entwickelt und XML weitgehend aufgrund seines kleineren Datenvolumens und besserer Performance verdrängt.
",
- heading2: "So verwenden Sie dieses Tool",
- p2: "
Fügen Sie Ihre rohen oder unformatierten JSON-Daten in den linken Editor ein.
Klicken Sie auf Format, um den Code mit korrekter Einrückung und Syntaxhervorhebung zu verschönern.
Alternativ verwenden Sie Minify, um alle Leerzeichen für den Produktionseinsatz zu entfernen.
Prüfen Sie die Statusanzeige, um sicherzustellen, dass Ihr JSON gültig ist; bei einem Fehler wird die genaue Zeile hervorgehoben.
Klicken Sie auf Copy, um das formatierte Ergebnis in die Zwischenablage zu kopieren, oder auf Clear, um neu zu beginnen.
",
- heading3: "Häufige Anwendungsfälle",
- p3: "
API-Debugging: Unleserliche JSON-Antworten von REST-APIs schnell formatieren, um Datenstrukturen zu untersuchen.
Konfigurationsvalidierung: Stellen Sie sicher, dass Ihre package.json, tsconfig.json oder andere Konfigurationsdateien syntaktisch korrekt sind.
Datenvorbereitung: JSON-Daten vor der Einbettung in Code oder der Übertragung über ein Netzwerk minimieren, um Bandbreite zu sparen.
Lernen & Dokumentation: Die formatierte Ausgabe verwenden, um klare Beispiele für technische Dokumentation oder Tutorials zu erstellen.
",
- heading4: "Profi-Tipps",
- p4: "
Verwenden Sie die Validate-Schaltfläche, wenn Sie nur auf Syntaxfehler prüfen möchten, ohne die Formatierung Ihrer Eingabe zu ändern.
Achten Sie auf die Max-Tiefe-Statistik, um übermäßig komplexe oder tief verschachtelte Strukturen zu erkennen, die Leistungsprobleme verursachen könnten.
Verwenden Sie immer doppelte Anführungszeichen für Schlüssel und Zeichenkettenwerte, da einfache Anführungszeichen in Standard-JSON ungültig sind.
JSON Web Token (JWT) ist ein offener Standard (RFC 7519), der eine kompakte und in sich geschlossene Methode zur sicheren Übertragung von Informationen zwischen Parteien als JSON-Objekt definiert. Diese Informationen können überprüft und als vertrauenswürdig eingestuft werden, da sie digital signiert sind. JWTs können mit einem geheimen Schlüssel (mit dem HMAC-Algorithmus) oder einem öffentlich-privaten Schlüsselpaar mittels RSA oder ECDSA signiert werden.
Aufgrund ihrer kompakten Größe werden JWTs häufig bei der Authentifizierung und beim Informationsaustausch verwendet, etwa als Bearer-Tokens in HTTP-Authorization-Headern.
",
- heading2: "So verwenden Sie dieses Tool",
- p2: "
Token einfügen: Kopieren Sie Ihr codiertes JWT (header.payload.signature) und fügen Sie es in das Eingabefeld ein.
Automatische Decodierung: Das Tool erkennt das Token automatisch und decodiert seine Bestandteile in Echtzeit.
Header prüfen: Überprüfen Sie den Algorithmus (alg) und den Token-Typ (typ) im Header-Bereich.
Payload analysieren: Untersuchen Sie die Claims wie Ablaufzeit (exp), Aussteller (iss) und Subjekt (sub) im Payload-Bereich.
Claims überprüfen: Prüfen Sie das Claim-Analyse-Feld für lesbare Datumsangaben und den Validierungsstatus.
",
- heading3: "Häufige Anwendungsfälle",
- p3: "
Authentifizierung: Untersuchung von ID-Tokens oder Access-Tokens von Anbietern wie Auth0, Firebase oder AWS Cognito.
Debugging: Fehlersuche, warum ein Token von Ihrem Backend abgelehnt wird (z. B. Prüfung, ob es abgelaufen ist).
Sicherheitsaudit: Überprüfung, dass sensible Daten nicht versehentlich im unverschlüsselten Payload offengelegt werden.
Entwicklung: Schnelles Anzeigen des Token-Inhalts während der API-Entwicklung, ohne eigenen Code zu schreiben.
",
- heading4: "Profi-Tipps",
- p4: "
JWT ist nicht verschlüsselt: Denken Sie daran, dass Standard-JWTs nur signiert, nicht verschlüsselt sind. Jeder mit dem Token kann den Payload lesen. Speichern Sie niemals Passwörter oder private Schlüssel in einem JWT.
Ablaufzeit prüfen: Überprüfen Sie immer den exp-Claim. Wenn ein Token abgelaufen ist, sollte es von Ihrer Anwendung abgelehnt werden.
HTTPS verwenden: Da JWTs häufig zur Authentifizierung verwendet werden, müssen sie immer über sichere HTTPS-Verbindungen übertragen werden, um ein Abfangen zu verhindern.
Ein JWT besteht in der Regel aus drei durch Punkte getrennten Teilen:
Header: Besteht üblicherweise aus zwei Teilen: dem Typ des Tokens (JWT) und dem verwendeten Signaturalgorithmus (z. B. HS256 oder RS256).
Payload: Enthält die Claims — Aussagen über eine Entität (in der Regel den Benutzer) und weitere Daten.
Signatur: Wird erstellt, indem der codierte Header, der codierte Payload, ein geheimer Schlüssel und der im Header angegebene Algorithmus genommen und damit signiert werden.
",
- heading6: "Sicherheitsaspekte",
- p6: "
Obwohl JWTs signiert sind, um die Integrität sicherzustellen, sind sie in der Regel NICHT verschlüsselt. Das bedeutet, dass jeder, der das Token besitzt, den Header und den Payload decodieren kann, um die enthaltenen Informationen zu lesen. Speichern Sie niemals sensible Informationen wie Passwörter oder private Schlüssel in einem JWT-Payload.
Überprüfen Sie außerdem immer den exp-Claim (Ablaufzeit), um Replay-Angriffe zu verhindern, und stellen Sie sicher, dass Ihr Server die Signatur validiert, bevor er den Daten im Payload vertraut.
",
- heading7: "Profi-Tipps",
- p7: "
Verwenden Sie den exp-Claim, um eine kurze Ablaufzeit für Access-Tokens festzulegen und so die Auswirkungen eines gestohlenen Tokens zu minimieren.
Verwenden Sie zur Übertragung von JWTs immer HTTPS, um ein Abfangen durch Man-in-the-Middle-Angriffe zu verhindern.
Bei Verwendung asymmetrischer Algorithmen (wie RS256) können Sie Ihren öffentlichen Schlüssel weitergeben, damit andere Dienste Ihre Tokens verifizieren können, ohne sie erstellen zu können.
Prüfen Sie auf den nbf-Claim (Not Before), wenn Sie ein Token ausstellen möchten, das erst zu einem bestimmten zukünftigen Zeitpunkt gültig wird.
",
- },
cheatsheet: {
title: "JWT-Kurzreferenz",
h0: "Struktur",
@@ -193,16 +167,6 @@ export default {
text0: "✓ Kopiert!",
tpl1: "GUID:",
},
- edu: {
- heading1: "Was ist eine UUID?",
- p1: "Eine Universally Unique Identifier (UUID) ist eine 128-Bit-Zahl, die zur eindeutigen Identifizierung von Informationen in Computersystemen verwendet wird. Sie sind so konzipiert, dass sie unabhängig ohne zentrale Instanz generiert werden können, wobei die Kollisionswahrscheinlichkeit vernachlässigbar bleibt.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Wählen Sie die UUID-Version (v1 für zeitbasiert, v4 für zufällig) und die Anzahl der benötigten IDs. Klicken Sie auf Generate, um eine Liste eindeutiger Kennungen zu erstellen, die Sie in Ihrer Datenbank oder Anwendung verwenden können.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Primärschlüssel in verteilten Datenbanken, Sitzungskennungen, Transaktionsverfolgung sowie die Benennung temporärer Dateien oder Ressourcen, bei denen Eindeutigkeit über mehrere Systeme hinweg entscheidend ist.",
- heading4: "Profi-Tipps",
- p4: "UUID v4 ist die gängigste Wahl für allgemeine eindeutige IDs, da sie auf hochwertiger Zufälligkeit beruht. Verwenden Sie v1, wenn Sie IDs nach dem Erstellungszeitpunkt sortieren möchten.",
- },
},
"password-generator": {
name: "Passwort-Generator",
@@ -265,24 +229,6 @@ export default {
status6: "Schwach",
text1: "Bitte geben Sie eine gültige Basis-E-Mail-Adresse ein.",
},
- edu: {
- heading1: "Was macht ein Passwort sicher?",
- p1: "
Ein sicheres Passwort ist Ihre erste Verteidigungslinie gegen unbefugten Zugriff. Im modernen Zeitalter der Hochgeschwindigkeitsrechner wird Sicherheit durch Entropie definiert – das Maß für Zufälligkeit und Unvorhersehbarkeit in einer Zeichenkette. Ein starkes Passwort sollte lang sein (mindestens 16 Zeichen), für jedes Konto einzigartig und aus einer vielfältigen Mischung von Zeichentypen bestehen, einschließlich Groß- und Kleinbuchstaben, Zahlen und Symbolen.
Vermeiden Sie die Verwendung persönlicher Informationen wie Geburtstage, Haustiernamen oder häufige Wörter aus dem Wörterbuch. Selbst komplex wirkende Ersetzungen wie P@ssw0rd123 werden von modernen Brute-Force-Tools leicht geknackt, die umfangreiche Wörterbücher mit gängigen Mustern verwenden.
",
- heading2: "So verwenden Sie dieses Tool",
- p2: "
Modus wählen: Wählen Sie je nach Bedarf zwischen Passwort, Benutzername, Passphrase oder E-Mail-Alias.
Länge anpassen: Verwenden Sie den Schieberegler, um die gewünschte Länge einzustellen. Für Passwörter werden 16+ Zeichen für hohe Sicherheit empfohlen.
Optionen konfigurieren: Zeichensätze (Symbole, Zahlen usw.) oder Stile (lesbar vs. sicher) aktivieren oder deaktivieren.
Generieren: Klicken Sie auf Generieren, um Ihr einzigartiges Anmeldedaten zu erstellen.
Kopieren: Verwenden Sie das Kopiersymbol, um das Ergebnis sicher in die Zwischenablage oder Ihren Passwortmanager zu übertragen.
",
- heading3: "Häufige Anwendungsfälle",
- p3: "
Kontosicherheit: Einzigartige, hochentropische Passwörter für jeden Online-Dienst generieren.
Systemadministration: Sichere temporäre Passwörter für neue Benutzer oder Dienstkonten erstellen.
Datenschutz: Plus-Aliase (z.B. benutzer+dienst@domain.com) verwenden, um zu verfolgen, welche Dienste Ihre Daten verkaufen oder Spam filtern.
Einprägsame Sicherheit: Den Passphrase-Generator für Master-Passwörter verwenden, die manuell eingegeben werden müssen, aber trotzdem knacksicher sind.
",
- heading4: "Profi-Tipps",
- p4: "
Passwortmanager verwenden: Versuchen Sie nie, komplexe Passwörter auswendig zu lernen. Generieren Sie sie mit diesem Tool und speichern Sie sie in einem seriösen Passwortmanager wie Bitwarden, 1Password oder KeePassXC.
Entropie vor Komplexität: Länge ist oft wichtiger als Zeichenvielfalt. Ein 20-Zeichen-Passwort aus Kleinbuchstaben ist oft schwerer zu knacken als ein 8-Zeichen-Passwort mit Sonderzeichen.
Nach Datenpanne wechseln: Wenn ein von Ihnen genutzter Dienst kompromittiert wurde, erstellen Sie sofort ein völlig neues, unabhängiges Passwort.
Ein sicheres Passwort ist Ihre erste Verteidigungslinie gegen unbefugten Zugriff. Im modernen Zeitalter der Hochgeschwindigkeitsrechner wird Sicherheit durch Entropie definiert – das Maß für Zufälligkeit und Unvorhersehbarkeit in einer Zeichenkette. Ein starkes Passwort sollte lang sein (mindestens 16 Zeichen), für jedes Konto einzigartig und aus einer vielfältigen Mischung von Zeichentypen bestehen.
Vermeiden Sie die Verwendung persönlicher Informationen wie Geburtstage, Haustiernamen oder häufige Wörter aus dem Wörterbuch. Selbst komplex wirkende Ersetzungen wie P@ssw0rd123 werden von modernen Brute-Force-Tools leicht geknackt.
",
- heading6: "Entropie erklärt",
- p6: "
Entropie ist ein Maß für die Zufälligkeit und Unvorhersehbarkeit eines Passworts, typischerweise in Bits ausgedrückt. Je höher die Entropie, desto stärker das Passwort. Unser Generator berechnet die Entropie in Echtzeit, um Ihnen eine objektive Messung Ihrer Passwortstärke zu geben. Ein Passwort mit über 100 Bit Entropie gilt als außergewöhnlich stark.
",
- heading7: "Bewährte Methoden",
- p7: "
Passwörter nie wiederverwenden: Verwenden Sie für jedes Konto ein einzigartiges Passwort.
Passwortmanager verwenden: Da Menschen sich nicht Dutzende komplexer Passwörter merken können, verwenden Sie einen seriösen Passwortmanager.
MFA aktivieren: Multi-Faktor-Authentifizierung fügt eine kritische zweite Sicherheitsebene hinzu.
Persönliche Infos vermeiden: Fügen Sie niemals Namen, Geburtstage oder häufige Wörter ein.
",
- heading8: "Profi-Tipps",
- p8: "
Verwenden Sie den Passphrase-Modus für Konten, die Sie manuell eingeben müssen; sie sind leichter zu merken, aber trotzdem sicher.
Generieren Sie für maximale Sicherheit das längste vom Dienst erlaubte Passwort (oft 64 oder 128 Zeichen).
Überprüfen Sie regelmäßig Ihre gespeicherten Passwörter mit der integrierten Sicherheitsprüffunktion Ihres Passwortmanagers.
Erwägen Sie die Verwendung von Plus-Aliasen (z.B. benutzer+dienst@gmail.com), um zu verfolgen, welche Dienste Ihre Daten verkaufen.
Kryptografisches Hashing ist ein mathematischer Prozess, der beliebige Eingabedaten (Text oder Dateien) in eine Zeichenkette fester Länge umwandelt, typischerweise eine Hexadezimalzahl. Dieser Fingerabdruck ist für die Eingabe eindeutig; selbst eine einzige Bit-Änderung in den Quelldaten führt zu einem völlig anderen Hash — ein Phänomen, das als Lawineneffekt bekannt ist.
Im Gegensatz zur Verschlüsselung ist Hashing eine Einwegfunktion. Sie können einen Hash nicht umkehren, um die Originaldaten wiederherzustellen. Das macht es ideal, um die Datenintegrität zu überprüfen, Passwörter sicher zu speichern (in Kombination mit Salts) und Dateien zu identifizieren, ohne ihren Inhalt offenzulegen.
",
- heading2: "So verwenden Sie dieses Tool",
- p2: "
Eingabetyp wählen: Wählen Sie den Tab Text für Zeichenketten oder den Tab File für lokale Dateien.
Eingabe bereitstellen: Fügen Sie Ihren Text ein oder ziehen Sie Ihre Datei per Drag-and-Drop in den Arbeitsbereich.
Optionales HMAC: Geben Sie einen geheimen Schlüssel im HMAC-Feld ein, wenn Sie einen geschlüsselten Hash zur Authentifizierung generieren müssen.
Ergebnisse prüfen: Das Tool berechnet automatisch mehrere Hash-Varianten (SHA-256, SHA-512 usw.) in Echtzeit.
Integrität verifizieren: Verwenden Sie den Tab Verify, um einen bekannten Hash mit Ihrer Eingabe zu vergleichen und Manipulationen zu erkennen.
",
- heading3: "Häufige Anwendungsfälle",
- p3: "
Software-Verifizierung: Überprüfung der SHA-256-Prüfsumme eines heruntergeladenen Installers, um sicherzustellen, dass er nicht beschädigt oder von Dritten verändert wurde.
Datenintegrität: Erzeugen von Hashes für Datenbankeinträge oder Konfigurationsdateien, um unautorisierte Änderungen im Zeitverlauf zu erkennen.
Passwortsicherheit: Verstehen, wie verschiedene Algorithmen (wie SHA-512) Klartext in sichere Darstellungen umwandeln.
Digitale Forensik: Identifizieren doppelter Dateien oder Überprüfen, dass Beweismittel nicht verändert wurden.
",
- heading4: "Profi-Tipps",
- p4: "
SHA-256+ bevorzugen: Verwenden Sie für sicherheitskritische Aufgaben immer SHA-256 oder SHA-512. MD5 und SHA-1 sind kryptografisch gebrochen und sollten nur für die Legacy-Kompatibilität verwendet werden.
HMAC für Authentizität verwenden: Wenn Sie sowohl die Integrität als auch die Identität des Absenders überprüfen müssen, verwenden Sie HMAC mit einem gemeinsamen geheimen Schlüssel.
Quelle prüfen: Beziehen Sie beim Verifizieren von Downloads den erwarteten Hash immer von einer vertrauenswürdigen, HTTPS-gesicherten offiziellen Website.
",
- },
cheatsheet: {
title: "Hash-Algorithmus-Referenz",
h0: "Algorithmenvergleich",
@@ -435,16 +371,6 @@ export default {
text5: "Verwenden Sie mindestens /",
text6: "IPv6 /",
},
- edu: {
- heading1: "Was ist CIDR?",
- heading2: "So verwenden Sie dieses Tool",
- heading3: "Häufige Anwendungsfälle",
- heading4: "Profi-Tipps",
- p1: "Classless Inter-Domain Routing (CIDR) ist eine Methode zur Zuweisung von IP-Adressen und IP-Routing. Es ersetzte das ältere klassenbasierte System (A, B und C), um mehr Flexibilität und Effizienz bei der Adressverteilung zu bieten.",
- p2: "Geben Sie eine IP-Adresse mit einem Präfix ein (z.B. 192.168.1.0/24) oder verwenden Sie den Schieberegler, um die Präfixlänge anzupassen. Klicken Sie auf \"Run analysis\", um Netzwerkdetails, verwendbare Host-Bereiche und Binärdarstellungen zu sehen.",
- p3: "Planung von Netzwerksubnetzen für Cloud-Infrastruktur (VPCs), Beheben von Routing-Problemen, Berechnung der Host-Kapazität für ein gegebenes Präfix und Konvertierung zwischen CIDR und Subnetzmasken.",
- p4: "Beachten Sie, dass bei IPv4 die erste und letzte Adresse in einem Subnetz typischerweise für die Netzwerk-ID und die Broadcast-Adresse reserviert sind. Bei IPv6 sind Subnetze für Standard-Lokalnetze fast immer /64.",
- },
cheatsheet: {
title: "Subnetz-Kurzreferenz",
h0: "Häufige Subnetze",
@@ -619,16 +545,6 @@ export default {
tpl3: "Standardwerte ändern:",
tpl4: "Keine Ports gefunden, die Ihrer Suche entsprechen.",
},
- edu: {
- heading1: "Port-Kategorien & Sicherheitsleitfaden",
- p1: "Well-Known-Ports (0-1023) werden von der IANA vergeben und erfordern auf Unix-Systemen Root-Rechte. Registrierte Ports (1024-49151) werden von Anwendungen verwendet. Dynamische/ephemere Ports (49152-65535) werden für clientseitige Verbindungen genutzt. Das Verständnis der Portbereiche ist essenziell für die Firewall-Konfiguration und Netzwerksicherheit.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Suchen Sie nach Portnummer oder Dienstname, um Protokolldetails und Risikostufen zu finden. Filtern Sie nach Kategorie (Well-Known, Registriert, Dynamisch) oder Protokoll (TCP/UDP), um die Ergebnisse einzugrenzen. Klicken Sie auf eine beliebige Zeile, um vollständige Details einschließlich häufiger Schwachstellen und Härtungsempfehlungen zu sehen.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Konfiguration von Firewall-Regeln, Netzwerk-Fehlersuche, Identifizierung unerwarteter offener Ports bei Sicherheitsaudits sowie schnelle Referenz für Protokoll-Port-Zuweisungen.",
- heading4: "Profi-Tipps",
- p4: "Verwenden Sie den Risikofilter, um Hochrisiko-Ports in Ihrem Netzwerk schnell zu identifizieren. Der Abschnitt „Top 50 der häufigsten Ports” bietet Ihnen einen sofortigen Überblick über die am häufigsten verwendeten Dienste.",
- },
cheatsheet: {
c2: "\n
\n
Nicht genutzte Ports schließen: Verkleinern Sie die Angriffsfläche, indem Sie unnötige Dienste deaktivieren
\n
Firewalls einsetzen: Implementieren Sie Zugriffskontrollen auf Netzwerkebene
\n
Datenverkehr überwachen: Protokollieren Sie Verbindungen zu sensiblen Ports (22, 443, 3389)
\n
Verschlüsselte Protokolle bevorzugen: Nutzen Sie SSH (22) statt Telnet (23) und SFTP statt FTP
\n
Standardwerte ändern: Erwägen Sie nicht standardmäßige Ports für SSH/RDP (Sicherheit durch Verschleierung)
\n
",
c1: "\n
\n
Port
Dienst
Risiko
\n
21
FTP
Unverschlüsselte Dateiübertragungen
\n
23
Telnet
Authentifizierung im Klartext
\n
25
SMTP
Risiko als Spam-Relay
\n
53
DNS
DDoS-Amplifikationsangriffe
\n
445
SMB
Verbreitung von Ransomware
\n
3389
RDP
Brute-Force-Angriffe
\n
",
@@ -872,16 +788,6 @@ export default {
text4: "Warnungen",
alert0: "Bitte generieren Sie zuerst eine Konfiguration",
},
- edu: {
- heading1: "Über WireGuard",
- p1: "WireGuard ist ein modernes, hochleistungsfähiges VPN-Protokoll, das State-of-the-Art-Kryptografie verwendet. Es ist so konzipiert, dass es einfacher und schneller als ältere Protokolle wie OpenVPN und IPsec ist, mit einer wesentlich kleineren Angriffsfläche dank seiner minimalen Codebasis. WireGuard ist mittlerweile Teil des Linux-Kernels und wird nativ unter Windows, macOS, iOS und Android unterstützt.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Wählen Sie eine Topologie-Vorlage (Point-to-Point, Hub-and-Spoke, Site-to-Site oder Road Warrior), um eine Konfiguration vorauszufüllen. Klicken Sie auf Generate Keys, um lokal in Ihrem Browser ein neues Schlüsselpaar zu erstellen. Füllen Sie die erforderlichen Felder aus und klicken Sie auf Generate Config, um die WireGuard-Konfigurationsdatei zu erzeugen. Verwenden Sie Download .conf, um die Datei zu speichern, oder Generate QR, um einen QR-Code für den mobilen Import zu erstellen.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Remote-Access-VPN für Mitarbeiter, die sich mit Unternehmensnetzwerken verbinden. Site-to-Site-VPN zur Verbindung von Niederlassungsnetzwerken. Persönlicher VPN-Server für sicheres Surfen in öffentlichen WLANs. IoT-Geräte-Tunneling für sichere Kommunikation zwischen eingebetteten Geräten.",
- heading4: "Profi-Tipps",
- p4: "Verwenden Sie PersistentKeepalive = 25 bei Clients hinter NAT, um den Tunnel aufrechtzuerhalten, wenn kein Datenverkehr fließt. PresharedKey fügt eine zusätzliche Schicht symmetrischer Verschlüsselung für Post-Quanten-Resistenz hinzu. AllowedIPs = 0.0.0.0/0 leitet den gesamten Datenverkehr durch den Tunnel (Full Tunnel), während spezifische CIDRs einen Split Tunnel erzeugen.",
- },
cheatsheet: {
title: "WireGuard-Kurzreferenz",
h0: "Interface-Felder",
@@ -1025,14 +931,6 @@ export default {
tpl6: "Beispiel:",
tpl7: "Klicken Sie auf ein beliebiges Feld im Diagramm, um Details zu sehen.",
},
- edu: {
- heading1: "Was sind Protokoll-Header?",
- p1: "Protokoll-Header sind strukturierte Daten, die dem Payload in Netzwerkpaketen vorangestellt sind. Sie enthalten Steuerungsinformationen wie Quell- und Zieladressen, Protokolltypen, Sequenznummern und Prüfsummen. Das Verständnis der Header-Struktur ist essenziell für die Netzwerk-Fehlersuche, Paketanalyse und Protokollimplementierung.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Wählen Sie ein Protokoll aus den Tabs, um dessen Header-Struktur anzuzeigen. Jeder farbige Block stellt ein Feld mit angegebener Größe dar. Klicken Sie auf ein beliebiges Feld, um detaillierte Informationen zu sehen, einschließlich Feldname und Beschreibung, Bit-/Byte-Offset, gängige Werte und ihre Bedeutungen sowie RFC-Referenz. Verwenden Sie den Hex-Dump-Parser, um echte Paket-Mitschnitte zu analysieren, indem Sie Hex-Ausgaben von Tools wie tcpdump oder Wireshark einfügen.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Paketanalyse, um die Struktur des erfassten Netzwerkverkehrs zu verstehen, Protokoll-Lernen als visuelle Hilfe beim Studium von Netzwerkprotokollen, Fehlersuche zur Identifizierung fehlerhafter Header oder falscher Feldwerte sowie Entwicklungsreferenz bei der Implementierung von Netzwerkprotokollen.",
- },
cheatsheet: {
c3: "\n
\n
Wert
Protokoll
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
Feld
Größe
Beschreibung
\n
Source Port
2 Bytes
Portnummer des Senders
\n
Dest Port
2 Bytes
Portnummer des Empfängers
\n
Seq Number
4 Bytes
Sequenznummer
\n
Ack Number
4 Bytes
Bestätigungsnummer
\n
Data Offset
4 Bit
Header-Länge / 4
\n
Flags
9 Bit
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2 Bytes
Größe des Empfangsfensters
\n
",
@@ -1108,16 +1006,6 @@ export default {
tpl0: "Unterschiede",
tpl1: "Keine Unterschiede gefunden (oder leere Eingabe)",
},
- edu: {
- heading1: "Was ist Text-Diffing?",
- p1: "Text-Diffing ist der Prozess des Vergleichs zweier Datensequenzen, um die Unterschiede zwischen ihnen zu identifizieren. Es hebt hervor, was hinzugefügt, entfernt oder geändert wurde. Dies ist eine grundlegende Operation in der Softwareentwicklung, Datenanalyse und im Content-Management, die es Benutzern ermöglicht, Änderungen im Zeitverlauf zu verfolgen oder verschiedene Versionen eines Dokuments zu vergleichen.",
- heading2: "Diff-Algorithmen",
- p2: "Die meisten Text-Diffing-Tools verwenden Algorithmen, die auf dem Problem der längsten gemeinsamen Teilfolge (Longest Common Subsequence, LCS) basieren. Das Ziel ist es, die längste Sequenz von Elementen zu finden, die in beiden Texten in derselben relativen Reihenfolge vorkommen. Gängige Implementierungen umfassen den Myers-Diff-Algorithmus, der äußerst effizient ist und von Git verwendet wird, sowie den Hunt-McIlroy-Algorithmus. Diese Algorithmen berechnen die minimale Anzahl an Änderungen, die erforderlich sind, um einen Text in einen anderen umzuwandeln.",
- heading3: "Anwendungsfälle",
- p3: "Code-Reviews, damit Entwickler genau sehen können, was sich in einem Pull Request geändert hat. Versionskontrollsysteme wie Git speichern den Verlauf als eine Reihe von Diffs, um Speicherplatz zu sparen. Content-Audits für Autoren und Redakteure, die Entwürfe vergleichen, um sicherzustellen, dass alle angeforderten Änderungen vorgenommen wurden. Datenvalidierung zum Vergleichen von Konfigurationsdateien oder Datenbankexporten, um Abweichungen zu finden.",
- heading4: "Profi-Tipps",
- p4: "Viele Diff-Tools bieten Optionen, um Änderungen bei der Einrückung oder nachgestellten Leerzeichen zu ignorieren, was beim Vergleich von Code Rauschen reduzieren kann. Fügen Sie einige Zeilen unveränderten Textes um die Unterschiede herum ein (Kontextzeilen), um die Auswirkungen der Änderungen zu verstehen. Diffs auf Wortebene sind oft nützlicher für Prosa und natürlichsprachliche Dokumente, während Diffs auf Zeilenebene der Standard für Code sind.",
- },
},
"regex-visualizer": {
name: "Regex-Visualisierer",
@@ -1168,16 +1056,6 @@ export default {
tpl5: "Keine Gruppen",
tpl6: "Ungültiger regulärer Ausdruck",
},
- edu: {
- heading1: "Was sind reguläre Ausdrücke?",
- p1: "Reguläre Ausdrücke (Regex) sind leistungsstarke Muster, die zum Abgleich von Zeichenkombinationen in Zeichenketten verwendet werden. Sie sind essenzielle Werkzeuge für Textverarbeitung, Validierung und Datenextraktion in Programmiersprachen. Regex-Muster bestehen aus literalen Zeichen und speziellen Metazeichen, die Suchregeln definieren. Sie werden bei der Formularvalidierung, beim Log-Parsing, bei Suchen-und-Ersetzen-Vorgängen und bei der Datenbereinigung eingesetzt.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Geben Sie Ihr Regex-Muster in das Eingabefeld ein. Das Tool generiert automatisch ein Schienendiagramm, das die Musterstruktur visualisiert. Fügen Sie Testtext hinzu, um Treffer in Echtzeit hervorzuheben und Erklärungen zu sehen. Nutzen Sie das Cheatsheet als schnelle Referenz für gängige Muster und Syntax. Generieren Sie Code-Snippets für Ihre bevorzugte Programmiersprache.",
- heading3: "Häufige Anwendungsfälle",
- p3: "E-Mail-Validierung, um sicherzustellen, dass Benutzereingaben vor der Verarbeitung dem richtigen E-Mail-Format entsprechen, Log-Parsing zum Extrahieren von Zeitstempeln und IP-Adressen aus Server-Logs, Datenbereinigung zum Entfernen unerwünschter Zeichen oder zur einheitlichen Formatierung von Telefonnummern sowie Suchen-und-Ersetzen für Massen-Textumwandlungen mit Mustererkennung.",
- heading4: "Profi-Tipps",
- p4: "Beginnen Sie einfach und bauen Sie komplexe Muster schrittweise auf. Verwenden Sie nicht-erfassende Gruppen (?:), wenn Sie den Treffer nicht referenzieren müssen. Testen Sie Grenzfälle wie leere Zeichenketten und Sonderzeichen. Denken Sie an die Lesbarkeit von Regex — komplexe Muster können mit Kommentaren dokumentiert werden.",
- },
cheatsheet: {
title: "Regex-Kurzreferenz",
h0: "Zeichenklassen",
@@ -1323,16 +1201,6 @@ export default {
text1: "Kopieren",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "Was ist ein Cron-Job?",
- p1: "Ein Cron-Job ist ein zeitbasierter Aufgabenplaner in Unix-ähnlichen Betriebssystemen. Er wird verwendet, um Befehle oder Skripte automatisch zu geplanten Zeitpunkten oder Intervallen auszuführen. Der Name leitet sich von Chronos, dem griechischen Gott der Zeit, ab. Cron-Jobs sind unverzichtbar für die Systemautomatisierung, wie das Planen von Backups, das Senden von E-Mail-Berichten oder das Bereinigen temporärer Dateien.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Wählen Sie die entsprechende Registerkarte (Minute, Stunde, Tag, Monat, Woche), um jeden Teil des Ausdrucks zu konfigurieren. Wählen Sie entweder 'Jeder' für die Wildcard (*) oder geben Sie bestimmte Werte ein. Der Cron-Ausdruck wird in Echtzeit oben aktualisiert. Verwenden Sie die 'Nächste Ausführungen'-Vorschau, um zu überprüfen, ob Ihr Zeitplan wie erwartet ausgeführt wird. Kopieren Sie den fertigen Ausdruck per Klick in die Zwischenablage.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Geplante Datenbankbackups täglich um Mitternacht. Berichte jeden Montag morgen generieren. Log-Dateien stündlich bereinigen. Healthcheck-Benachrichtigungen alle 5 Minuten senden. Caches täglich zu bestimmten Zeiten aktualisieren.",
- heading4: "Profi-Tipps",
- p4: "Testen Sie Ihren Cron-Ausdruck immer mit einem Tool wie diesem, bevor Sie ihn in die Produktion einsetzen. Bedenken Sie, dass Cron-Jobs in der lokalen Zeitzone des Servers ausgeführt werden, was bei verteilten Systemen zu Problemen führen kann. Dokumentieren Sie Ihre Cron-Jobs immer mit Kommentaren in der Crontab, um deren Zweck für spätere Referenz klar zu machen.",
- },
cheatsheet: {
title: "SSH-Schlüssel-Kurzreferenz",
h0: "Schlüsseltypen",
@@ -1372,16 +1240,6 @@ export default {
tpl2: "Keine Subject Alternative Names vorhanden.",
tpl3: "Keine Erweiterungen geparst.",
},
- edu: {
- heading1: "Was sind X.509-Zertifikate?",
- heading2: "So verwenden Sie dieses Tool",
- heading3: "Häufige Anwendungsfälle",
- heading4: "Profi-Tipps",
- p1: "
X.509 ist ein Standardformat für Public-Key-Zertifikate — digitale Dokumente, die einen öffentlichen Schlüssel sicher an eine Identität (etwa eine Website, Organisation oder Person) binden. Diese Zertifikate bilden die Grundlage der Public Key Infrastructure (PKI), die zur Absicherung des Internets über HTTPS sowie zum Signieren von E-Mails und Software verwendet wird.
Ein X.509-Zertifikat enthält den öffentlichen Schlüssel, die Identität des Zertifikatsinhabers und die digitale Signatur der Zertifizierungsstelle (Certificate Authority, CA), die das Zertifikat ausgestellt hat und damit seine Authentizität belegt.
",
- p2: "
Zertifikat einfügen: Kopieren Sie Ihr PEM-codiertes Zertifikat (einschließlich der BEGIN- und END-Header) und fügen Sie es in das Eingabefeld ein.
Parsen: Klicken Sie auf \"Parse Certificate\", um die Daten zu extrahieren und zu analysieren.
Zusammenfassung prüfen: Prüfen Sie die oberen Karten für Common Name (CN), Aussteller und Gültigkeitsdaten.
Details untersuchen: Erweitern Sie die unteren Abschnitte, um das vollständige Subject, den Aussteller, die SANs und technische Erweiterungen zu sehen.
Status prüfen: Sehen Sie sich das Status-Badge an, um zu prüfen, ob das Zertifikat derzeit gültig oder abgelaufen ist.
",
- p3: "
SSL/TLS-Fehlersuche: Diagnose, warum eine Website eine \"Nicht sicher\"-Warnung anzeigt, durch Prüfung auf Ablauf oder Hostname-Abweichungen.
Sicherheitsaudit: Überprüfung, dass ein Zertifikat von einer vertrauenswürdigen CA ausgestellt wurde und starke Signaturalgorithmen (wie SHA-256) verwendet.
Entwicklung: Untersuchung selbstsignierter Zertifikate oder CSRs (Certificate Signing Requests) während der lokalen Entwicklung.
Infrastrukturverwaltung: Prüfung der Subject Alternative Names (SANs), um sicherzustellen, dass alle erforderlichen Subdomains von einem einzigen Zertifikat abgedeckt sind.
",
- p4: "
SANs prüfen: Moderne Browser verlassen sich für die Hostname-Überprüfung auf die Subject-Alternative-Name-Erweiterung (SAN) statt auf den Common Name (CN). Stellen Sie immer sicher, dass Ihre Domain in den SANs aufgeführt ist.
Kette überprüfen: Wenn ein Zertifikat gültig, aber dennoch nicht vertrauenswürdig ist, fehlen möglicherweise Zwischenzertifikate. Prüfen Sie den \"Issuer\", um herauszufinden, welche Zwischen-CA Sie auf Ihrem Server einbinden müssen.
Fingerabdrücke für Pinning: Verwenden Sie den von diesem Tool bereitgestellten SHA-256-Fingerabdruck, wenn Sie Certificate Pinning in mobilen Anwendungen oder hochsicheren APIs implementieren müssen.
",
- },
cheatsheet: {
title: "X.509-Zertifikat-Referenz",
h0: "Zertifikatsfelder",
@@ -1424,16 +1282,6 @@ export default {
text1: "JSON kopieren",
text2: "XML kopieren",
},
- edu: {
- heading1: "Was ist SAML?",
- p1: "Security Assertion Markup Language (SAML) ist ein XML-basierter offener Standard für den Austausch von Authentifizierungs- und Autorisierungsdaten zwischen Parteien, insbesondere zwischen einem Identity Provider (IdP) und einem Service Provider (SP). SAML ist das Rückgrat vieler Enterprise-Single-Sign-On-Lösungen (SSO) und ermöglicht Benutzern den Zugriff auf mehrere Anwendungen mit einem einzigen Satz von Anmeldedaten. Die gängigste Version ist SAML 2.0, das Sicherheitstoken mit Assertions verwendet, um Informationen über einen Principal zwischen IdP und SP zu übermitteln.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Fügen Sie die Base64-codierte SAMLResponse oder rohes XML in das Eingabefeld ein. Aktivieren Sie Attempt to inflate, wenn Sie einen Redirect-Binding-Payload decodieren. Klicken Sie auf Decode response, um die Nachricht zu parsen. Prüfen Sie die Kurzübersicht für Aussteller, Subject und Gültigkeitsstatus. Sehen Sie sich decodierte Benutzerattribute in der Attribute-Tabelle an. Verwenden Sie die Tabs, um Pretty XML, Assertion-Details oder eine JSON-Darstellung der Claims anzuzeigen.",
- heading3: "Häufige Anwendungsfälle",
- p3: "SSO-Fehlersuche durch Diagnose, warum sich ein Benutzer nicht anmelden kann, indem auf abgelaufene Assertions oder Audience-Abweichungen geprüft wird. Integrationstests zur Überprüfung, dass Ihr Identity Provider die korrekten Attribute sendet. Sicherheitsaudit zur Untersuchung des rohen XML und zur Sicherstellung, dass Assertions ordnungsgemäß signiert sind. Entwicklung zur schnellen Ansicht des Inhalts einer SAML-Nachricht während der Service-Provider-Integration.",
- heading4: "Profi-Tipps",
- p4: "SAML-Nachrichten, die über HTTP-Redirect gesendet werden, sind vor der Base64-Codierung normalerweise deflated (komprimiert) — wenn Ihre Decodierung fehlschlägt, versuchen Sie, das Kontrollkästchen Attempt to inflate zu aktivieren. Stellen Sie sicher, dass die AudienceRestriction mit Ihrer SP Entity ID übereinstimmt. Wenn eine Antwort als ungültig markiert ist, prüfen Sie die Zeiten NotBefore und NotOnOrAfter auf Zeitabweichungen (Clock Skew) zwischen den Uhren von IdP und SP.",
- },
cheatsheet: {
title: "SAML-Kurzreferenz",
h0: "SAML-Ablauf",
@@ -1476,16 +1324,6 @@ export default {
alert1: "Bitte geben Sie einen User-Agent-String ein",
tpl2: "Rohe Analyseausgabe",
},
- edu: {
- heading1: "Was ist ein User-Agent?",
- p1: "Ein User-Agent ist ein String, den Ihr Browser an jede Website sendet, die Sie besuchen. Er identifiziert die Browserversion, das Betriebssystem und den Gerätetyp, sodass Server Inhalte für Ihre spezifische Umgebung optimieren können.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Fügen Sie einen User-Agent-String in das Eingabefeld ein oder klicken Sie auf Use This, um den String Ihres aktuellen Browsers zu analysieren. Das Tool schlüsselt die Browser-Engine, Betriebssystemversion und Geräteeigenschaften auf.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Fehlersuche bei Website-Kompatibilitätsproblemen, Analyse von Webserver-Logs zur Identifizierung von Bot-Datenverkehr, Überprüfung von Browser-Spoofing und Verständnis der Geräteverteilung in Ihrer Zielgruppe.",
- heading4: "Profi-Tipps",
- p4: "Viele moderne Browser frieren ihre User-Agent-Strings ein oder vereinfachen sie, um Fingerprinting zu verhindern. Achten Sie immer auf die Version- oder Chrome-Token für die genauesten Versionsinformationen.",
- },
},
"qr-code": {
name: "QR-Code-Generator",
@@ -1524,16 +1362,6 @@ export default {
alert3: "Kopiert!",
tpl4: "Laden Sie ein Bild zum Decodieren hoch",
},
- edu: {
- heading1: "Was sind QR-Codes?",
- p1: "Quick-Response-Codes (QR-Codes) sind zweidimensionale Barcodes, die verschiedene Arten von Daten speichern können, am häufigsten URLs. Sie können von Smartphones und speziellen Lesegeräten gescannt werden, um schnell auf Informationen zuzugreifen oder Aktionen auszulösen.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Geben Sie den Text oder die URL ein, die Sie codieren möchten. Passen Sie bei Bedarf die Größe und die Fehlerkorrekturstufe an. Der QR-Code wird in Echtzeit aktualisiert und kann als Bild für Druck oder digitale Verwendung heruntergeladen werden.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Teilen von Website-Links, Bereitstellen von WLAN-Zugangsdaten, digitale Visitenkarten (vCards), Ticketing für Veranstaltungen sowie mobile Zahlungen oder Authentifizierungsabläufe.",
- heading4: "Profi-Tipps",
- p4: "Höhere Fehlerkorrekturstufen (H oder Q) sorgen dafür, dass der QR-Code auch bei teilweiser Beschädigung oder Verdeckung scannbar bleibt, was ideal für physische Beschilderung oder Branding ist.",
- },
},
"timestamp-converter": {
name: "Zeitstempel-Konverter",
@@ -1564,16 +1392,6 @@ export default {
text0: "Ungültiger Zeitstempel",
tpl1: "Unix (Millisekunden)",
},
- edu: {
- heading1: "Was ist Unix-Zeit?",
- p1: "Unix-Zeit (auch bekannt als Epoch-Zeit, POSIX-Zeit oder Unix-Timestamp) ist ein System zur Beschreibung eines Zeitpunkts. Es ist die Anzahl der Sekunden, die seit dem Unix-Epoch vergangen sind (abzüglich Schaltsekunden); der Unix-Epoch ist 00:00:00 UTC am 1. Januar 1970. Es wird häufig in Betriebssystemen und Dateiformaten verwendet, da es eine einzelne Ganzzahl ist, die Computer leicht speichern und verarbeiten können. Dieser Standard ermöglicht es verschiedenen Systemen, Zeit unabhängig von ihren lokalen Zeitzoneneinstellungen präzise zu kommunizieren.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Zum Konvertieren von Unix in Menschen-lesbar: Geben Sie den Timestamp im Feld Unix-Timestamp ein und wählen Sie, ob er in Sekunden oder Millisekunden ist. Zum Konvertieren von Menschen-lesbar in Unix: Wählen Sie Datum und Uhrzeit mit den Auswahlfeldern und wählen Sie Ihre gewünschte Zeitzone. Verwenden Sie die Now-Schaltfläche, um schnell den aktuellen Timestamp zu erfassen. Ergebnisse in Echtzeit anzeigen, einschließlich ISO 8601, Lokalzeit, UTC und relativer Zeit. Klicken Sie auf Copy neben einem Ergebnis, um es in die Zwischenablage zu kopieren.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Protokollanalyse zum Konvertieren kryptischer Timestamps in Server-Protokollen oder Datenbankeinträgen in lesbare Daten zur Fehlersuche. API-Entwicklung zur Überprüfung, ob Ihr Backend die korrekten Epoch-Werte sendet. Datenmigration zur Sicherstellung, dass zeitbasierte Daten beim Wechsel zwischen Systemen konsistent bleiben. Planung zur Berechnung zukünftiger oder vergangener Timestamps für Cron-Jobs, Ablaufdaten oder Event-Trigger.",
- heading4: "Profi-Tipps",
- p4: "Beachten Sie bei der Arbeit mit JavaScript, dass Date.now() Millisekunden zurückgibt, während Standard-Unix-Timestamps in Sekunden sind — dividieren Sie durch 1000 zur Konvertierung. Verwenden Sie immer das ISO 8601-Format für den Datenaustausch zwischen Systemen, um maximale Kompatibilität zu gewährleisten. Beachten Sie das Jahr-2038-Problem, bei dem 32-Bit-vorzeichenbehaftete Ganzzahlen überlaufen; moderne Systeme verwenden 64-Bit-Ganzzahlen, was dieses Problem für die absehbare Zukunft löst.",
- },
},
"color-converter": {
name: "Farbkonverter",
@@ -1589,16 +1407,6 @@ export default {
badge7: "Nur clientseitig",
badge8: "Datenschutz zuerst",
},
- edu: {
- heading1: "Farbmodelle erklärt (HEX/RGB/HSL)",
- heading2: "So verwenden Sie dieses Tool",
- heading3: "Häufige Anwendungsfälle",
- heading4: "Profi-Tipps",
- p1: "
Farbmodelle sind mathematische Systeme zur Darstellung von Farben. HEX (Hexadezimal) ist ein 6-stelliger Code, der in HTML und CSS verwendet wird und Rot-, Grün- und Blaukomponenten darstellt. RGB (Rot, Grün, Blau) verwendet Dezimalwerte von 0 bis 255 für jeden Kanal, häufig in der digitalen Bildverarbeitung eingesetzt.
HSL (Farbton, Sättigung, Helligkeit) ist für Menschen intuitiver, da es Farbe in Bezug auf ihren Grundfarbton (Hue), Intensität (Saturation) und Helligkeit (Lightness) beschreibt. Das Verständnis dieser Modelle hilft bei der Auswahl des richtigen Formats für Design- und Entwicklungsanforderungen, um Konsistenz über verschiedene Plattformen und Geräte hinweg zu gewährleisten.
",
- p2: "
Verwenden Sie den visuellen Farbwähler, um eine Farbe durch Ziehen des Cursors im Sättigungs-/Helligkeitsquadrat und dem Farbtonregler auszuwählen.
Alternativ geben Sie einen bestimmten Wert in das Feld «Manuelle Eingabe» ein (unterstützt #hex, rgb oder hsl-Formate).
Beobachten Sie das Vorschaufeld, um die ausgewählte Farbe in Echtzeit zu sehen.
Zeigen Sie die konvertierten Werte in den HEX-, RGB-, HSL- und HSV-Karten unten an.
Klicken Sie auf das «Kopieren»-Symbol auf einer Karte, um dieses spezifische Format in die Zwischenablage zu kopieren.
",
- p3: "
Webdesign: Farben aus Design-Tools (oft RGB/HSL) in HEX-Codes für die Verwendung in CSS-Stylesheets konvertieren.
Markenkonsistenz: Sicherstellen, dass Ihre Markenfarben über verschiedene digitale Formate und Medien hinweg korrekt dargestellt werden.
UI-Entwicklung: Schnell hellere oder dunklere Variationen einer Grundfarbe generieren, indem der Helligkeitswert in HSL angepasst wird.
Barrierefreiheitstests: Die Vorschau nutzen, um zu prüfen, ob die gewählten Farben ausreichend Kontrast für lesbaren Text und UI-Elemente bieten.
",
- p4: "
Verwenden Sie HSL beim Entwerfen von UI-Komponenten wie Schaltflächen, da es einfach macht, Hover-Zustände durch Anpassen des Helligkeitswerts zu erstellen.
Bevorzugen Sie bei der Arbeit mit Transparenz in CSS rgba() oder hsla() für bessere Lesbarkeit und Kontrolle über den Alpha-Kanal.
Überprüfen Sie immer Farbkontrastverhältnisse, um sicherzustellen, dass Ihre Designs für Benutzer mit Sehbeeinträchtigungen zugänglich sind.
",
- },
},
"unit-converter": {
name: "Einheitenumrechner",
@@ -1616,16 +1424,6 @@ export default {
text0: "Wählen Sie Einheiten aus, um die Umrechnungsformel zu sehen",
text1: "Geben Sie eine gültige Zahl ein",
},
- edu: {
- heading1: "Überblick über Maßsysteme",
- p1: "Maßsysteme sind Sammlungen von Maßeinheiten und Regeln, die diese miteinander in Beziehung setzen. Die zwei gebräuchlichsten Systeme sind das Metrische System (Internationales Einheitensystem oder SI) und das Imperiale System. Das metrische System basiert auf Zehnerpotenzen, was es äußerst logisch und leicht skalierbar macht. Das Imperiale System, das hauptsächlich in den USA verwendet wird, nutzt Einheiten wie Zoll, Fuß und Pfund, die historische Ursprünge haben. Das Verständnis der Unterschiede zwischen diesen Systemen ist für Wissenschaft, Technik, internationalen Handel und alltägliche Aufgaben wie Kochen oder Reisen unerlässlich.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Wählen Sie die Messkategorie (z.B. Länge, Gewicht, Temperatur) aus dem Raster oben. Wählen Sie die Einheit, von der Sie konvertieren möchten, im Von-Dropdown-Menü. Geben Sie den zu konvertierenden Wert in das Eingabefeld ein. Wählen Sie die Zieleinheit im Nach-Dropdown-Menü. Der konvertierte Wert erscheint sofort zusammen mit der verwendeten mathematischen Formel.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Reisen zum Konvertieren von Entfernungen von Kilometern in Meilen oder Temperaturen von Celsius in Fahrenheit. Kochen zum Übersetzen von Rezepten zwischen metrischen (Gramm/Milliliter) und imperialen (Unzen/Tassen) Maßen. Ingenieurwesen und Wissenschaft für präzise Konvertierungen zwischen verschiedenen Einheiten von Druck, Energie oder Geschwindigkeit. Digitaler Speicher zum Verstehen des Unterschieds zwischen Megabyte, Gigabyte und Terabyte.",
- heading4: "Profi-Tipps",
- p4: "Verwenden Sie die Tauschen-Schaltfläche, um die Konvertierungsrichtung zwischen Ihren ausgewählten Einheiten schnell umzukehren. Überprüfen Sie immer den spezifischen Einheitentyp, insbesondere für Volumen und Gewicht, da Namen in verschiedenen Systemen wie US vs. UK-Gallonen ähnlich sein können. Behalten Sie bei der Durchführung mehrerer Konvertierungen in einer Sequenz so viele Dezimalstellen wie möglich bis zum Endergebnis, um kumulative Rundungsfehler zu vermeiden.",
- },
},
"yaml-toml-converter": {
name: "YAML/TOML-Konverter",
@@ -1659,16 +1457,6 @@ export default {
text6: "⚠️ TOML-Konvertierung fehlgeschlagen:",
tpl7: "Warte auf Konvertierung.",
},
- edu: {
- heading1: "YAML vs. TOML vs. JSON im Vergleich",
- p1: "JSON ist aufgrund seiner Einfachheit und nativen Unterstützung in JavaScript das am weitesten verbreitete Format für den Datenaustausch. YAML (YAML Ain't Markup Language) ist ein menschenfreundlicher Standard zur Datenserialisierung, der Einrückung zur Darstellung von Struktur verwendet, was es für komplexe Konfigurationsdateien beliebt macht. TOML (Tom's Obvious, Minimal Language) wurde entwickelt, um dank seiner offensichtlichen Semantik leicht lesbar und schreibbar zu sein, und wird häufig für die Projektkonfiguration verwendet. Während JSON streng und kompakt ist, priorisieren YAML und TOML die menschliche Lesbarkeit und die einfache manuelle Bearbeitung.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Fügen Sie Ihre Konfigurationsdaten (JSON, YAML oder TOML) in das Quelltextfeld links ein. Das Tool erkennt automatisch das Quellformat, oder Sie können es manuell aus dem Dropdown-Menü auswählen. Klicken Sie auf Validate only, um auf Syntaxfehler zu prüfen, ohne eine Konvertierung durchzuführen. Klicken Sie auf eine der Konvertierungsschaltflächen (to JSON, to YAML, to TOML), um Ihre Daten in dieses Format zu übersetzen. Sehen Sie sich die Ergebnisse in den Ausgabefeldern rechts an und klicken Sie auf Copy, um sie in Ihrer Zwischenablage zu speichern.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Infrastructure as Code, um zwischen JSON und YAML zu konvertieren, wenn mit Kubernetes-Manifesten, Docker-Compose-Dateien oder AWS-CloudFormation-Vorlagen gearbeitet wird. Projektkonfiguration zur Migration von Einstellungen zwischen package.json (JSON) und pyproject.toml oder Cargo.toml (TOML). API-Prototyping, um schnell zu visualisieren, wie eine komplexe Datenstruktur in verschiedenen Formaten aussieht. Legacy-Migration zur Übersetzung alter Konfigurationsdateien in moderne Formate unter Wahrung der Datenintegrität.",
- heading4: "Profi-Tipps",
- p4: "Verwenden Sie YAML für CI/CD-Pipelines, bei denen die Lesbarkeit komplexer verschachtelter Strukturen für die Wartbarkeit essenziell ist. Bevorzugen Sie TOML für Konfigurationsdateien auf Anwendungsebene, um Endbenutzern, die sie möglicherweise manuell bearbeiten müssen, eine übersichtliche Schnittstelle zu bieten. Achten Sie bei der Konvertierung von YAML nach JSON auf Probleme mit der YAML-Typumwandlung (bei denen NO als false interpretiert werden kann) und stellen Sie sicher, dass Ihre Datentypen korrekt erhalten bleiben.",
- },
cheatsheet: {
title: "Formatvergleich",
h0: "Syntaxunterschiede",
@@ -1719,16 +1507,6 @@ export default {
text1: "Kopieren",
text2: "Kopiert!",
},
- edu: {
- heading1: "Was ist htpasswd?",
- p1: "
Die htpasswd-Datei ist eine Flatfile-Datenbank, die zum Speichern von Benutzernamen und gehashten Passwörtern für die Basisauthentifizierung auf Apache- und Nginx-Webservern verwendet wird. Sie ist eine einfache, aber effektive Möglichkeit, bestimmte Verzeichnisse oder Administrationsbereiche einer Website zu schützen, ohne ein vollständiges datenbankgestütztes Authentifizierungssystem zu benötigen.
Jede Zeile in einer htpasswd-Datei repräsentiert einen einzelnen Benutzer und folgt dem Format username:hashed_password.
",
- heading2: "So verwenden Sie dieses Tool",
- p2: "
Benutzername eingeben: Geben Sie den Benutzernamen ein, den Sie zur Authentifizierung verwenden möchten.
Passwort angeben: Geben Sie ein Passwort ein oder klicken Sie auf Generate strong, um ein sicheres zu erstellen.
Algorithmus wählen: Wählen Sie Bcrypt (-B) für moderne Sicherheit oder Apache MD5 (-m) für Legacy-Kompatibilität.
Generieren: Klicken Sie auf Generate entry, um den gehashten String zu erstellen.
Kopieren oder herunterladen: Kopieren Sie die resultierende Zeile in Ihre Zwischenablage oder laden Sie sie als Datei herunter, um sie auf Ihren Server hochzuladen.
",
- heading3: "Häufige Anwendungsfälle",
- p3: "
Admin-Bereiche: Schutz sensibler Bereiche wie /admin oder /wp-admin mit einer zusätzlichen Sicherheitsebene auf Serverebene.
Staging-Websites: Einschränkung des Zugriffs auf Entwicklungs- oder Staging-Umgebungen, damit sie nicht von Suchmaschinen indexiert oder öffentlich einsehbar sind.
Private Repositories: Absicherung lokaler Git- oder SVN-Repositories, die über HTTP bereitgestellt werden.
API-Gateways: Implementierung einfacher Authentifizierung für interne Microservices oder Legacy-APIs.
",
- heading4: "Profi-Tipps",
- p4: "
Immer Bcrypt verwenden: Bcrypt ist absichtlich langsam und verwendet einen Kostenfaktor, um Brute-Force-Angriffen zu widerstehen. Es ist wesentlich sicherer als die veralteten Optionen MD5 oder SHA1.
Datei absichern: Benennen Sie Ihre Datei .htpasswd (mit vorangestelltem Punkt) und speichern Sie sie außerhalb Ihres Web-Root-Verzeichnisses, damit sie nicht heruntergeladen werden kann.
HTTPS ist Pflicht: Basisauthentifizierung sendet Anmeldedaten in einem leicht umkehrbaren Format. Verwenden Sie sie niemals über unverschlüsseltes HTTP; stellen Sie immer sicher, dass Ihre Website über HTTPS bereitgestellt wird.
Mock-Daten sind synthetische Informationen, die reale Daten imitieren, ohne sensible oder personenbezogene Daten (PII) zu enthalten. Sie sind für Entwickler und Tester unverzichtbar, die realistische Datensätze benötigen, um Anwendungen zu erstellen und zu validieren, ohne das Risiko von Datenlecks oder die Verletzung von Datenschutzvorschriften wie DSGVO oder CCPA einzugehen. Durch die Verwendung von Mock-Daten können Sie verschiedene Szenarien simulieren und sicherstellen, dass Ihre Software alle Arten von Eingaben ordnungsgemäß verarbeitet.
",
- heading2: "Teststrategien",
- p2: "
Effektives Testen erfordert vielfältige Datensätze. Verwenden Sie Mock-Daten, um Ihre Entwicklungsdatenbanken zu befüllen, Lasttests mit Tausenden von Datensätzen durchzuführen oder UI-Layouts mit variierenden Zeichenkettenlängen zu überprüfen. Es ist besonders nützlich für Integrationstests, bei denen Sie vorhersehbare Antworten von externen APIs benötigen. Durch die lokale Generierung von Daten können Sie konsistente Testumgebungen erstellen, die leicht zurückgesetzt und reproduziert werden können.
",
- heading3: "Datenschutz bei Mock-Daten",
- p3: "
Datenschutz hat in der modernen Softwareentwicklung höchste Priorität. Die Verwendung echter Produktionsdaten in Entwicklungs- oder Staging-Umgebungen ist ein erhebliches Sicherheitsrisiko. Mock-Datengeneratoren lösen dieses Problem, indem sie gefälschte, aber strukturell korrekte Daten erzeugen. Unser Tool läuft vollständig in Ihrem Browser, was bedeutet, dass Ihre Konfiguration und die generierten Daten Ihr Gerät nie verlassen.
",
- heading4: "Profi-Tipps",
- p4: "
Konsistenz: Verwenden Sie feste Seeds oder Muster, um beim Generieren mehrerer verwandter Datensätze referenzielle Integrität zwischen Tabellen zu gewährleisten.
Randfälle: Fügen Sie leere Zeichenketten, sehr lange Namen und Sonderzeichen hinzu, um die Robustheit Ihrer Anwendung zu testen.
Format-Wechsel: Verwenden Sie den SQL-Export für schnelles Datenbankseeding und CSV für Tabellenanalyse oder Massenimporte.
Automatisierung: Die Muster dieses Tools können in Ihre automatisierten CI/CD-Pipelines für kontinuierliches Testen integriert werden.
Namenskonventionen sind Regelwerke zur Wahl der Zeichenfolge für Bezeichner, die Variablen, Typen, Funktionen und andere Entitäten in Quellcode und Dokumentation benennen. camelCase (z. B. myVariable) beginnt mit einem Kleinbuchstaben und schreibt den ersten Buchstaben jedes folgenden Wortes groß. snake_case (z. B. my_variable) verwendet Unterstriche zur Worttrennung.
PascalCase (z. B. MyVariable) schreibt den ersten Buchstaben jedes Wortes groß, während kebab-case (z. B. my-variable) Bindestriche zur Worttrennung verwendet. Diese Konventionen sind nicht nur eine Frage der Ästhetik; sie sind entscheidend für die Lesbarkeit und Wartbarkeit von Code sowie für die Einhaltung der idiomatischen Standards verschiedener Programmiersprachen und Frameworks.
",
- p2: "
Geben Sie Ihren Text in das Feld \"Input Text\" oben auf der Seite ein oder fügen Sie ihn ein.
Das Tool wandelt Ihre Eingabe automatisch in Echtzeit in über ein Dutzend verschiedene Schreibweisen um.
Scrollen Sie durch das Raster \"Conversion Results\", um die gewünschte Schreibweise zu finden.
Klicken Sie auf das \"Copy\"-Symbol neben einem Ergebnis, um es in Ihrer Zwischenablage zu speichern.
Verwenden Sie die Schaltfläche \"Clear\", um alle Eingaben zu entfernen und eine neue Umwandlung zu starten.
",
- p3: "
Code-Refactoring: Schnelles Konvertieren von Variablennamen bei der Migration von Code zwischen Sprachen mit unterschiedlichen Standards (z. B. von Javas camelCase zu Pythons snake_case).
Webentwicklung: Umwandlung von Text in kebab-case für CSS-Klassennamen oder URL-Slugs, um SEO-freundliche und gültige Bezeichner sicherzustellen.
Datenbankdesign: Konvertierung von camelCase-Bezeichnern auf Anwendungsebene in snake_case für Datenbanktabellen- und Spaltennamen.
Content-Erstellung: Verwendung von Title Case oder Sentence case, um Überschriften und Fließtext für Artikel oder Dokumentation schnell zu formatieren.
",
- p4: "
Bleiben Sie innerhalb Ihres Projekts konsistent; auch wenn Sie einen bestimmten Stil bevorzugen, folgen Sie immer der bestehenden Konvention der Codebasis, an der Sie arbeiten.
Verwenden Sie aussagekräftige Namen, die Bedeutung vermitteln, statt nur der Schreibweisen-Konvention zu folgen (z. B. ist isUserLoggedIn besser als status).
Seien Sie bei der Arbeit mit APIs darauf vorbereitet, zwischen Schreibweisen zu konvertieren, da Backend-Systeme oft snake_case verwenden, während Frontends camelCase bevorzugen.
",
- },
},
"code-minifier": {
name: "Code-Komprimierer",
@@ -1913,16 +1671,6 @@ export default {
text2: "📋 Kopieren",
tpl3: "Die gesamte Verarbeitung erfolgt in Ihrem Browser. Ihr Code wird lokal verarbeitet und nicht an unsere Server gesendet.",
},
- edu: {
- heading1: "Was ist Minifizierung?",
- heading2: "So verwenden Sie dieses Tool",
- heading3: "Häufige Anwendungsfälle",
- heading4: "Profi-Tipps",
- p1: "
Minifizierung ist der Prozess, bei dem alle unnötigen Zeichen aus Quellcode entfernt werden, ohne dessen Funktionalität zu verändern. Dazu gehört das Entfernen von Leerzeichen, Zeilenumbrüchen, Kommentaren und manchmal das Verkürzen von Variablennamen. Ziel ist es, die Dateigröße des Codes zu reduzieren, was wiederum die über das Netzwerk zu übertragende Datenmenge verringert.
Dies führt zu schnelleren Seitenladezeiten und verbesserter Leistung für Webanwendungen. Während Minifizierung für Produktionsumgebungen essenziell ist, macht sie den Code für Menschen nahezu unlesbar und schwer zu debuggen. Daher wird sie typischerweise als letzter Schritt im Build-Prozess vor der Bereitstellung auf einem Live-Server durchgeführt.
",
- p2: "
Wählen Sie die Programmiersprache (JavaScript, CSS, HTML oder JSON) aus den Tabs oben.
Fügen Sie Ihren Quellcode in das Textfeld \"Input Code\" links ein.
Klicken Sie auf die Schaltfläche \"Minify Code\", um die Dateigröße für den Produktionseinsatz zu reduzieren.
Alternativ klicken Sie auf \"Beautify Code\", um Einrückung und Formatierung für bessere Lesbarkeit hinzuzufügen.
Sehen Sie sich die Ergebnisse im Bereich \"Output Code\" an und klicken Sie auf \"Copy\" oder \"Download\", um Ihren optimierten Code zu speichern.
",
- p3: "
Produktions-Deployment: Minifizieren Sie Ihre JS- und CSS-Dateien, bevor Sie sie auf Ihren Webserver hochladen, um Seitengeschwindigkeit und SEO zu verbessern.
E-Mail-Vorlagen: Minifizieren Sie HTML-E-Mail-Code, damit er unter den Größenbeschränkungen verschiedener E-Mail-Clients bleibt und für Empfänger schnell lädt.
API-Antworten: Minifizieren Sie JSON-Daten, bevor Sie sie von Ihrem Server senden, um Bandbreitennutzung und Egress-Kosten zu reduzieren.
Code-Auditing: Verwenden Sie den Beautifier, um unübersichtlichen oder minifizierten Code zu formatieren, den Sie online gefunden haben, um zu verstehen, wie er funktioniert.
",
- p4: "
Bewahren Sie immer Ihren ursprünglichen, nicht minifizierten Quellcode für die Entwicklung auf und verwenden Sie die minifizierte Version nur für das Produktions-Deployment.
Verwenden Sie Source Maps, um die Lücke zwischen minifiziertem Produktionscode und lesbarem Entwicklungscode zu überbrücken und effizientes Debugging im Browser zu ermöglichen.
Kombinieren Sie Minifizierung mit Gzip- oder Brotli-Komprimierung auf Ihrem Server für die maximal mögliche Reduzierung von Dateigröße und Übertragungszeit.
",
- },
},
"image-converter": {
name: "Bildkonverter",
@@ -1969,16 +1717,6 @@ export default {
alert2: "Fehler beim Lesen der Datei.",
tpl3: "Clientseitige Verarbeitung mit der Canvas API - keine Uploads, sofortige Ergebnisse",
},
- edu: {
- heading1: "Bildformate im Vergleich (PNG/JPEG/WebP)",
- p1: "
Die Wahl des richtigen Bildformats ist entscheidend für Web-Performance und visuelle Qualität. JPEG eignet sich am besten für Fotografien und komplexe Bilder mit vielen Farben, da es verlustbehaftete Komprimierung für kleine Dateigrößen verwendet. PNG ist ideal für Bilder, die Transparenz benötigen oder scharfe Kanten und einfarbige Flächen aufweisen (wie Logos und Icons), da es verlustfreie Komprimierung verwendet.
WebP ist ein modernes Format, das überlegene verlustbehaftete und verlustfreie Komprimierung bietet und oft zu deutlich kleineren Dateigrößen als JPEG oder PNG führt, bei gleichzeitig hoher Qualität.
",
- heading2: "So verwenden Sie dieses Tool",
- p2: "
Laden Sie Ihr Bild hoch, indem Sie es in die Zone Upload Image ziehen oder klicken, um Ihre Dateien zu durchsuchen.
Wählen Sie das gewünschte Ausgabeformat (PNG, JPG oder WebP) aus den Optionen Convert Format.
Wenn Sie ein verlustbehaftetes Format wie JPG oder WebP gewählt haben, verwenden Sie den Qualitätsregler, um Dateigröße und visuelle Treue auszubalancieren.
Optional können Sie die Einstellungen Resize Image verwenden, um Ihr Bild nach Prozentsatz oder bestimmten Abmessungen zu skalieren.
Klicken Sie auf Convert & Resize Image und dann auf Download, um Ihr optimiertes Asset zu speichern.
",
- heading3: "Häufige Anwendungsfälle",
- p3: "
Web-Optimierung: Konvertieren Sie große PNG- oder JPEG-Bilder in WebP, um die Ladegeschwindigkeit Ihrer Website und die Core Web Vitals zu verbessern.
Social Media: Größe von Fotos anpassen und komprimieren, um die spezifischen Upload-Anforderungen von Plattformen wie Instagram, Twitter oder LinkedIn zu erfüllen.
E-Mail-Marketing: Reduzieren Sie die Dateigröße von Bildern in Ihren E-Mail-Kampagnen, damit sie für alle Empfänger schnell laden.
App-Entwicklung: Erzeugen Sie mit den Größenänderungsfunktionen mehrere Größen desselben Icons oder Assets für unterschiedliche Bildschirmdichten.
",
- heading4: "Profi-Tipps",
- p4: "
Verwenden Sie für Webprojekte wann immer möglich WebP, da es von allen modernen Browsern unterstützt wird und das beste Verhältnis von Komprimierung zu Qualität bietet.
Bei der Konvertierung nach JPEG bietet eine Qualitätseinstellung von 70-80% meist die beste Balance zwischen Dateigröße und visueller Qualität für die meisten Webanwendungen.
Bewahren Sie immer Ihre ursprünglichen hochauflösenden Bilder auf und konvertieren oder skalieren Sie nur Kopien für bestimmte Anwendungsfälle, um Qualitätsverlust durch wiederholte Komprimierung über die Zeit zu vermeiden.
",
- },
},
"css-gradient": {
name: "CSS-Verlaufsgenerator",
@@ -2018,16 +1756,6 @@ export default {
alert2: "CSS konnte nicht in die Zwischenablage kopiert werden",
tpl3: "Ladebildschirme und Overlays",
},
- edu: {
- heading1: "Was sind CSS-Verläufe?",
- heading2: "Linearer vs. radialer vs. konischer Verlauf",
- heading3: "Browser-Unterstützung und Performance",
- heading4: "Profi-Tipps für bessere Verläufe",
- p1: "
CSS-Verläufe sind eine leistungsstarke Funktion, mit der Sie sanfte Übergänge zwischen zwei oder mehr festgelegten Farben darstellen können. Anders als herkömmliche Hintergrundbilder werden Verläufe vom Browser erzeugt, was bedeutet, dass sie unendlich skalierbar sind, weniger Bandbreite verbrauchen und sich leicht per Code steuern lassen. Sie werden häufig für Hintergründe, Schaltflächen und dekorative Elemente verwendet, um Webdesigns Tiefe und visuellen Reiz zu verleihen.
",
- p2: "
Es gibt drei Haupttypen von CSS-Verläufen:
Lineare Verläufe: Farben gehen entlang einer geraden Linie ineinander über. Sie können die Richtung mit Winkeln (z. B. 45deg) oder Schlüsselwörtern (z. B. to right) steuern.
Radiale Verläufe: Farben strahlen von einem zentralen Punkt (dem „Ursprung“) nach außen aus. Sie können die Form (Kreis oder Ellipse) und die Position des Zentrums festlegen.
Konische Verläufe: Farben gehen um einen Mittelpunkt herum ineinander über, ähnlich einem Kreisdiagramm oder Farbkreis. Obwohl weniger gebräuchlich, eignen sie sich hervorragend für einzigartige Muster und UI-Elemente.
",
- p3: "
Moderne CSS-Verläufe werden von allen großen Browsern breit unterstützt, einschließlich Chrome, Firefox, Safari und Edge. Da sie von der Browser-Engine mathematisch gerendert werden, sind sie im Vergleich zu hochauflösenden Bildern äußerst performant. Bei sehr komplexen Verläufen mit Dutzenden von Farbstopps ist es jedoch immer eine gute Praxis, die Performance auf leistungsschwächeren Geräten zu testen. Für ältere Browser (wie IE9 und niedriger) wird empfohlen, einen einfarbigen Fallback bereitzustellen.
",
- p4: "
„Graue Todeszonen“ vermeiden: Beim Übergang zwischen zwei weit entfernten Farben kann der Mittelpunkt manchmal trüb oder grau wirken. Das Hinzufügen eines lebendigen Zwischenfarbstopps kann den Verlauf frisch wirken lassen.
Dezente Übergänge verwenden: Oft sind die besten Verläufe diejenigen, die man kaum bemerkt. Die Verwendung von Farben, die im Farbkreis nahe beieinander liegen, erzeugt einen raffinierten, professionellen Look.
Schichtung: Sie können mehrere Verläufe mit der Eigenschaft background-image übereinanderlegen, was unglaublich komplexe und künstlerische Effekte ermöglicht.
Barrierefreiheit: Stellen Sie sicher, dass jeder über einem Verlauf platzierte Text ausreichenden Kontrast hat. Verwenden Sie Tools, um die WCAG-Konformität für alle Farbkombinationen zu prüfen.
",
- },
},
"curl-studio": {
name: "cURL-Studio",
@@ -2096,16 +1824,6 @@ export default {
text2: "Kopiert!",
tpl3: "Logs werden hier nach der Maskierung angezeigt...",
},
- edu: {
- heading1: "Was ist PII?",
- p1: "
Personenbezogene Daten (Personally Identifiable Information, PII) sind alle Daten, mit denen eine bestimmte Person identifiziert werden kann. Dazu gehören direkte Identifikatoren wie Namen, E-Mail-Adressen und Telefonnummern sowie indirekte Identifikatoren wie IP-Adressen, physische Standorte und Kreditkartennummern. Im Kontext von Serverlogs erscheinen PII häufig in Request-Parametern, Headern oder Fehlermeldungen.
Der Schutz personenbezogener Daten ist ein wesentlicher Bestandteil moderner Datensicherheit und wird von verschiedenen Rechtsrahmen weltweit gefordert.
Vorschriften wie die Datenschutz-Grundverordnung (DSGVO) in Europa und der California Consumer Privacy Act (CCPA) in den Vereinigten Staaten legen strenge Regeln für den Umgang mit personenbezogenen Daten fest. Diese Gesetze verpflichten Organisationen, Privacy by Design umzusetzen und die Erhebung und Speicherung personenbezogener Daten zu minimieren.
Das Teilen roher Logs, die PII enthalten, mit externen Support-Teams oder Entwicklern kann zu Compliance-Verstößen führen. Das Maskieren oder Schwärzen dieser Daten, bevor sie Ihre sichere Umgebung verlassen, ist ein wichtiger Schritt zur Einhaltung regulatorischer Vorgaben.
",
- heading3: "Maskierungsstrategien",
- p3: "
Es gibt mehrere Möglichkeiten, sensible Daten in Logs zu behandeln:
Schwärzung (Redaction): Ersetzen des sensiblen Werts durch einen generischen Platzhalter wie [EMAIL_REDACTED]. Dies ist der gängigste Ansatz beim Teilen von Logs.
Anonymisierung: Unumkehrbares Umwandeln von Daten, sodass die Person nicht mehr identifiziert werden kann.
Pseudonymisierung: Ersetzen von Identifikatoren durch einen konsistenten Alias (wie einen Hash), sodass Sie Ereignisse weiterhin korrelieren können, ohne die Identität des Benutzers zu kennen.
Unser Tool konzentriert sich auf die Schwärzung und nutzt Musterabgleich, um gängige PII-Formate sofort zu finden und zu ersetzen.
",
- heading4: "Profi-Tipps",
- p4: "
Verwenden Sie das Feld Custom Keywords, um interne Identifikatoren wie API-Schlüssel, Sitzungstoken oder proprietäre Projektnamen zu schwärzen, die nicht von Standardmustern abgedeckt werden.
Führen Sie die Maskierung immer lokal durch (wie es dieses Tool tut), um sicherzustellen, dass sensible Daten während des Bereinigungsprozesses niemals einen Drittserver berühren.
Wenn Sie Logs über mehrere Systeme hinweg korrelieren, sollten Sie statt einfacher Schwärzung ein konsistentes Salt mit einem Hashing-Tool verwenden, um die Nachverfolgbarkeit zu erhalten.
Überprüfen Sie regelmäßig Ihren Anwendungscode, um zu verhindern, dass PII überhaupt erst geloggt werden; das Loggen an der Quelle zu vermeiden ist die beste Verteidigung.
E-Mail-Authentifizierung ist eine Sammlung von Techniken, die überprüfbare Informationen über den Ursprung einer E-Mail-Nachricht liefern. Durch die Validierung der Absenderidentität helfen diese Protokolle Mailservern, zwischen legitimen und gefälschten oder betrügerischen Nachrichten (wie Phishing) zu unterscheiden. Die drei Säulen der modernen E-Mail-Authentifizierung sind SPF, DKIM und DMARC.
Beim Empfang einer E-Mail führt der empfangende Server diese Prüfungen durch und zeichnet die Ergebnisse in den Headern der E-Mail auf, die dieses Tool für Sie parst.
",
- p2: "
SPF (Sender Policy Framework): Ein DNS-basierter Mechanismus, der die IP-Adressen und Domains auflistet, die berechtigt sind, E-Mails im Namen Ihrer Domain zu versenden.
DKIM (DomainKeys Identified Mail): Fügt der E-Mail eine digitale Signatur hinzu, sodass der Empfänger überprüfen kann, dass die Nachricht tatsächlich vom Domain-Inhaber gesendet und während der Übertragung nicht manipuliert wurde.
DMARC (Domain-based Message Authentication, Reporting, and Conformance): Verknüpft SPF und DKIM. Es teilt dem Empfänger mit, was zu tun ist, wenn die Authentifizierung fehlschlägt (z. B. \"none\", \"quarantine\" oder \"reject\"), und bietet Empfängern eine Möglichkeit, an den Absender zurückzumelden.
",
- p3: "
Phishing-E-Mails nutzen häufig \"Spoofing\", um so zu erscheinen, als kämen sie von einer vertrauenswürdigen Quelle. Unser Analyzer sucht nach gängigen Warnsignalen, etwa einer Abweichung zwischen der \"From\"-Adresse (was der Benutzer sieht) und dem \"Return-Path\" (woher die Mail tatsächlich kam). Wir extrahieren und analysieren außerdem URLs im E-Mail-Body, um verdächtige Links zu identifizieren, etwa solche, die Punycode (Lookalike-Domains) oder IP-Adressen statt Hostnamen verwenden.
Durch die Überprüfung des Abschnitts \"Findings\" können Sie diese Signale schnell erkennen und feststellen, ob eine E-Mail sicher ist.
",
- p4: "
Prüfen Sie immer zuerst den \"Authentication-Results\"-Header; er liefert das endgültige Ergebnis der von Ihrem Mail-Provider durchgeführten Sicherheitsprüfungen.
Verwenden Sie die Option \"Mask PII\", wenn Sie Berichte mit anderen teilen, um sensible E-Mail-Adressen und IP-Informationen zu schützen.
Achten Sie genau auf den \"Reply-To\"-Header; weicht er von der \"From\"-Adresse ab, kann dies ein Hinweis auf einen Business-Email-Compromise-Angriff (BEC) sein.
Überprüfen Sie die \"Routing Hops\", um den Weg der E-Mail zu sehen; ein ungewöhnlich langer oder komplexer Pfad über unbekannte Server kann ein Zeichen für Relay-Missbrauch sein.
",
- },
cheatsheet: {
title: "E-Mail-Auth-Kurzreferenz",
h0: "Was diese Prüfungen bedeuten",
@@ -2491,16 +2199,6 @@ export default {
text9: "Fügen Sie zuerst SQL ein.",
text10: "✓ Kopiert",
},
- edu: {
- heading1: "Warum SQL formatieren?",
- p1: "SQL kann schnell komplex und schwer lesbar werden, besonders bei mehreren Joins, Unterabfragen und verschachtelten Bedingungen. Das Formatieren von SQL umfasst das Hinzufügen konsistenter Einrückung, Zeilenumbrüche und Großschreibung von Schlüsselwörtern. Dadurch lässt sich die Logik der Abfrage viel leichter nachvollziehen, was für Debugging, Code-Reviews und die langfristige Wartung großer Datenbankschemata essenziell ist. Eine gut formatierte Abfrage ist auch weniger anfällig für logische Fehler bei manuellen Bearbeitungen.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Fügen Sie Ihre rohe SQL-Abfrage in den Input-SQL-Editor links ein. Wählen Sie Ihren Datenbankdialekt (Postgres oder MySQL) und die bevorzugte Groß-/Kleinschreibung der Schlüsselwörter (UPPER oder lower). Klicken Sie auf die Schaltfläche Format, um Ihre Abfrage mit korrekter Einrückung und Abständen zu verschönern. Verwenden Sie die Schaltfläche Validate, um auf gängige strukturelle Probleme wie nicht geschlossene Anführungszeichen oder unausgeglichene Klammern zu prüfen. Klicken Sie auf Copy, um das formatierte SQL in Ihre Zwischenablage zu speichern, oder auf Clear, um neu zu beginnen.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Code-Reviews, um unübersichtliches SQL vor dem Einreichen eines Pull Requests zu formatieren. Debugging, um von ORMs generierte Abfragen zu bereinigen und genau zu verstehen, was gegen Ihre Datenbank ausgeführt wird. Dokumentation, um klare und lesbare Beispiele für technische Leitfäden, Wikis oder README-Dateien zu erstellen. Legacy-Bereinigung, um alte, unformatierte Skripte schnell in einen modernen, lesbaren Stil umzuwandeln.",
- heading4: "Profi-Tipps",
- p4: "Verwenden Sie Common Table Expressions (CTEs) mit der WITH-Klausel, um komplexe Abfragen in kleinere, besser handhabbare Teile zu zerlegen. Verwenden Sie immer aussagekräftige Aliase für Tabellen und Spalten, um die Absicht Ihrer Abfrage klar zu machen. Verwenden Sie die Schaltfläche Minify, wenn Sie Ihr SQL für die Verwendung in Konfigurationsdateien oder Kommandozeilen-Tools auf eine einzige Zeile komprimieren müssen.",
- },
cheatsheet: {
title: "SQL-Formatierungstipps",
h0: "Schnelle Erfolge",
@@ -2569,16 +2267,6 @@ export default {
text15: "Hinweis: Werte werden aus Sicherheitsgründen maskiert. Der Diff ist heuristisch und berücksichtigt weder Kommentare noch Reihenfolge.",
text16: "✓ Kopiert",
},
- edu: {
- heading1: "Best Practices für Umgebungsvariablen",
- heading2: "Geheimnisverwaltung",
- heading3: ".env-Sicherheit",
- heading4: "Profi-Tipps",
- p1: "
Umgebungsvariablen sind ein grundlegender Bestandteil der \"Twelve-Factor App\"-Methodik, die eine strikte Trennung von Konfiguration und Code befürwortet. Durch die Verwendung von Umgebungsvariablen können Sie denselben Code in verschiedenen Umgebungen (Entwicklung, Staging, Produktion) ausführen, indem Sie einfach die Konfigurationswerte ändern.
Zu den bewährten Praktiken gehören die Verwendung aussagekräftiger, großgeschriebener Namen (z. B. DATABASE_URL), das Bereitstellen von Standardwerten für unkritische Einstellungen und das niemalige direkte Hardcodieren sensibler Informationen in Ihre Versionskontrolle.
",
- p2: "
Secrets sind eine besondere Kategorie von Umgebungsvariablen, die sensible Informationen wie API-Schlüssel, Datenbankpasswörter und private Zertifikate enthalten. Deren sichere Verwaltung ist entscheidend, um Datenschutzverletzungen zu verhindern. Für Produktionsumgebungen sollten Sie einen dedizierten Secret-Management-Dienst (wie AWS Secrets Manager, HashiCorp Vault oder Cloudflare Secrets) verwenden.
Für die lokale Entwicklung werden häufig .env-Dateien verwendet, diese sollten jedoch niemals in Ihr Git-Repository committet werden. Fügen Sie immer *.env zu Ihrer .gitignore-Datei hinzu.
",
- p3: "
Beim Teilen von .env-Dateien mit Teammitgliedern zum Debuggen besteht ein hohes Risiko, versehentlich Produktions-Secrets offenzulegen. Unser Manager hilft, dieses Risiko durch die Funktion \"Mask sensitive values\" zu mindern. Er verwendet Heuristiken, um Schlüssel wie SECRET, TOKEN oder PASSWORD zu identifizieren und ersetzt deren Werte durch eine maskierte Version (z. B. ab...yz (32)).
So können Sie die Struktur und nicht sensiblen Werte Ihrer Umgebungsdateien vergleichen, ohne die tatsächlichen Secrets offenzulegen.
",
- p4: "
Verwenden Sie die Schaltfläche \"Swap\", um die Vergleichsrichtung zwischen Umgebung A und Umgebung B schnell umzukehren.
Nutzen Sie das Eingabefeld \"Filter keys\", um sich auf bestimmte Gruppen von Variablen zu konzentrieren, etwa alle Schlüssel, die mit AWS_ oder DB_ beginnen.
Fügen Sie immer eine .env.example-Datei mit Platzhalterwerten in Ihr Repository ein, um anderen Entwicklern zu zeigen, welche Variablen für den Betrieb der App erforderlich sind.
Denken Sie daran, dass Umgebungsvariablen typischerweise Strings sind; wenn Ihre App einen Boolean oder eine Zahl benötigt, stellen Sie sicher, dass Sie den Wert in Ihrem Code korrekt parsen.
",
- },
cheatsheet: {
title: "Dotenv-Hinweise",
h0: "Maskierungsstrategie",
@@ -2638,16 +2326,6 @@ export default {
text7: "Noch keine Vorschau.",
text8: "✓ Kopiert",
},
- edu: {
- heading1: "Was ist SVG?",
- p1: "SVG (Scalable Vector Graphics) ist ein XML-basiertes Vektorgrafikformat für zweidimensionale Grafiken mit Unterstützung für Interaktivität und Animation. Anders als Rasterformate wie JPEG oder PNG werden SVGs durch mathematische Pfade definiert, wodurch sie ohne Qualitätsverlust auf jede Größe skaliert werden können. Das macht sie perfekt für Logos, Icons und Illustrationen im Web, wo sie auf allem von mobilen Bildschirmen bis zu hochauflösenden Desktop-Monitoren scharf bleiben.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Fügen Sie Ihren SVG-Code in das Textfeld SVG Input links ein. Klicken Sie auf Preview, um die Grafik zu sehen und ihre Farbpalette zu extrahieren. Verwenden Sie die Schaltflächen Optimize oder Minify, um das Markup zu bereinigen und die Dateigröße zu reduzieren. Optional können Sie bestimmte Farben ersetzen, indem Sie neue Werte im Colors-Panel eingeben und auf Apply klicken. Klicken Sie auf Copy oder Download, um Ihr bereinigtes und optimiertes SVG zu speichern.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Icon-Verwaltung, um aus Design-Tools wie Figma oder Illustrator exportierte SVGs zu bereinigen. Theming, um die Farben eines Icon-Sets schnell an Ihre Markenpalette anzupassen. Sicherheit, um SVGs aus nicht vertrauenswürdigen Quellen zu bereinigen und potenzielle Skripte oder externe Referenzen zu entfernen. Performance, um SVG-Markup zu minimieren, die Größe von Inline-Grafiken zu reduzieren und die Seitenladezeiten zu verbessern.",
- heading4: "Profi-Tipps",
- p4: "Verwenden Sie die Schaltfläche currentColor, um alle expliziten Füllungen und Konturen in currentColor umzuwandeln, sodass Ihr SVG leicht über CSS gestylt werden kann. Optimieren Sie Ihre SVGs immer, bevor Sie sie in der Produktion verwenden, um sicherzustellen, dass sie so klein wie möglich sind. Verwenden Sie beim Erstellen von SVGs in Design-Tools die Funktionen Outline Stroke und Simplify Path, um die Komplexität des generierten Codes vor der Optimierung zu reduzieren.",
- },
cheatsheet: {
title: "SVG-Sicherheitshinweise",
h0: "Bereinigung",
@@ -2801,16 +2479,6 @@ export default {
text28: "Klicken Sie auf Scan, um Secrets zu finden.",
text29: "✓ Kopiert",
},
- edu: {
- heading1: "Was sind Secret-Leaks?",
- p1: "Secret-Leaks entstehen, wenn sensible Informationen wie API-Schlüssel, Passwörter oder private Tokens versehentlich in die Versionskontrolle committet oder in öffentlichen Foren geteilt werden. Diese Leaks können zu unbefugtem Zugriff, Datenschutzverletzungen und finanziellen Verlusten führen. Dieses Tool hilft, gängige Secret-Muster lokal in Ihrem Browser zu identifizieren, bevor Sie Ihren Code teilen oder committen.",
- heading2: "So verwenden Sie dieses Tool",
- p2: "Fügen Sie Ihren Code, Ihre Konfiguration oder Log-Dateien in das Eingabefeld ein. Klicken Sie auf die Schaltfläche Scan, um den Text auf mögliche Secrets zu analysieren. Sehen Sie sich die Befunde und Hinweise für jeden erkannten Eintrag an. Verwenden Sie die Schaltfläche Copy Redacted, um eine freigabesichere Version Ihres Textes mit maskierten Secrets zu erhalten.",
- heading3: "Häufige Anwendungsfälle",
- p3: "Pre-Commit-Prüfungen, um Ihren Code vor dem Commit zu scannen und sicherzustellen, dass keine Secrets enthalten sind. Log-Schwärzung, um sensible Tokens in Logs zu maskieren, bevor Sie sie mit Support oder Teammitgliedern teilen. Sicherheitsaudit, um Konfigurationsdateien schnell auf hartcodierte Anmeldedaten zu prüfen.",
- heading4: "Profi-Tipps",
- p4: "Rotieren Sie Ihre Anmeldedaten immer sofort, wenn Sie feststellen, dass sie geleakt wurden. Verwenden Sie Umgebungsvariablen oder Secret-Manager, anstatt Secrets in Ihrem Quellcode hartzucodieren. Aktivieren Sie Include low severity patterns für einen gründlicheren Scan, seien Sie aber auf mehr Fehlalarme gefasst.",
- },
cheatsheet: {
title: "Was tun, wenn Sie ein Secret finden",
h0: "Sofortmaßnahmen",
@@ -2907,16 +2575,6 @@ export default {
text15: "✓ Gültige JWKS-Struktur (",
text16: "Bitte fügen Sie einen JWK ein.",
},
- edu: {
- heading1: "Was ist ein JWT?",
- p1: "Ein JSON Web Token (JWT) ist eine kompakte, URL-sichere Methode zur Darstellung von Claims, die zwischen zwei Parteien übertragen werden. Ein JWT besteht aus drei Base64URL-codierten, durch Punkte getrennten Teilen: dem Header (Algorithmus und Typ), dem Payload (Claims) und der Signatur. Die Signatur stellt sicher, dass das Token nicht manipuliert wurde. JWTs werden häufig zur Authentifizierung und zum Informationsaustausch in Web-APIs verwendet. Zu den Standard-Claims gehören sub (Subjekt), iss (Aussteller), aud (Zielgruppe), exp (Ablaufzeit), nbf (Not Before), iat (Ausgestellt am) und jti (JWT-ID).",
- heading2: "JWT-Algorithmen",
- p2: "HS256/384/512 verwendet HMAC mit SHA-2 und einem Shared Secret — einfach, aber beide Parteien müssen denselben Schlüssel besitzen. RS256/384/512 verwendet asymmetrische RSA-PKCS#1-v1.5-Signaturen — ideal für Microservice-Architekturen, bei denen Dienste nur den öffentlichen Schlüssel benötigen. ES256/384/512 verwendet ECDSA mit NIST-Kurven für kleinere Signaturen als RSA bei gleichwertiger Sicherheit. PS256/384/512 verwendet RSA-PSS, eine probabilistische Variante, die in modernen Systemen gegenüber RS* bevorzugt wird.",
- heading3: "JWK und JWKS",
- p3: "Ein JSON Web Key (JWK) ist eine JSON-Struktur, die einen kryptografischen Schlüssel darstellt. Ein JWK-Set (JWKS) ist eine JSON-Struktur, die ein Array von JWKs unter der Eigenschaft keys enthält. Dienste veröffentlichen ihr JWKS unter einer bekannten URL (z. B. /.well-known/jwks.json), sodass Clients öffentliche Schlüssel zur JWT-Verifizierung abrufen können, ohne einen Out-of-Band-Schlüsselaustausch. Schlüssel in einem JWKS werden durch ihre kid (Key ID) identifiziert, auf die JWT-Header verweisen.",
- heading4: "Sicherheits-Best-Practices",
- p4: "Validieren Sie die Claims exp, nbf, iss und aud immer serverseitig. Verwenden Sie niemals den Algorithmus alg: none in der Produktion — er entfernt jeglichen Signaturschutz. Bevorzugen Sie asymmetrische Algorithmen (RS*, ES*, PS*) gegenüber HMAC, wenn mehrere Dienste Tokens verifizieren müssen. Rotieren Sie Schlüssel regelmäßig und verwenden Sie kid, um zu identifizieren, welcher Schlüssel zum Signieren jedes Tokens verwendet wurde. Bewahren Sie private Schlüssel sicher auf — committen Sie sie niemals in die Versionskontrolle. Verwenden Sie kurze Ablaufzeiten und Refresh-Tokens statt langlebiger JWTs.",
- },
},
"encoding-workbench": {
name: "Codierungs-Werkbank",
@@ -2980,16 +2638,6 @@ export default {
js: {
noLayers: "Keine erkennbaren Codierungsebenen gefunden.",
},
- edu: {
- heading1: "Was ist der Unterschied zwischen Codierung und Hashing?",
- heading2: "So verwenden Sie dieses Tool",
- heading3: "Geschichtete Codierung erklärt",
- heading4: "Leitfaden zu Hash-Algorithmen",
- p1: "
Codierung wandelt Daten in eine andere Darstellung um, die umgekehrt (decodiert) werden kann. Gängige Formate sind Base64 — verwendet zur Übertragung binärer Daten über Textkanäle —, URL-Codierung, HTML-Entity-Codierung und Hexadezimal. Codierung ist keine Verschlüsselung; sie bietet keine Vertraulichkeit.
Hashing ist eine mathematische Einwegtransformation. Eine kryptografische Hashfunktion nimmt eine beliebige Eingabe und erzeugt einen Fingerabdruck fester Länge. Sie können einen Hash nicht umkehren, um die ursprüngliche Eingabe wiederherzustellen. Hashes werden verwendet, um die Dateiintegrität zu überprüfen, Passwörter sicher zu speichern und digitale Signaturen zu erzeugen.
",
- p2: "
Tab Encode / Decode: Fügen Sie Text ein und wählen Sie eine Operation (Base64, URL, HTML, Hex), oder klicken Sie auf Auto-Detect Layers, um mehrere verschachtelte Codierungen automatisch aufzulösen.
Tab Hash: Geben Sie Text ein oder wählen Sie eine Datei, wählen Sie Algorithmen aus und klicken Sie auf Hash All. Aktivieren Sie den HMAC-Modus, um geschlüsselte Hashes mit einem Shared Secret zu berechnen.
Tab Identify: Fügen Sie einen unbekannten Hash oder eine codierte Zeichenkette ein und klicken Sie auf Identify, um wahrscheinliche Algorithmen mit Zuverlässigkeitsbewertungen zu sehen.
",
- p3: "
Reale Daten werden oft mehrfach codiert. Zum Beispiel könnte ein Payload URL-codiert, dann Base64-codiert und dann in einen Hex-String eingebettet werden. Die Funktion Auto-Detect Layers untersucht das Eingabemuster, versucht jede Decodierung nacheinander und visualisiert jeden Schritt als Karte, sodass Sie genau sehen können, wie die Daten verpackt wurden.
",
- p4: "
MD5 — 128-Bit-Ausgabe. Kryptografisch gebrochen; nur für Legacy-Kompatibilität oder nicht sicherheitsrelevante Prüfsummen verwenden.
SHA-1 — 160-Bit-Ausgabe. Für Sicherheitszwecke veraltet. Noch in älteren Git-Commits und Zertifikaten zu finden.
SHA-256 — 256-Bit-Ausgabe. Allzweck, weit verbreitet in TLS, Code-Signierung und Datenintegritätsprüfungen.
SHA-512 — 512-Bit-Ausgabe. Höhere Sicherheitsmarge; bevorzugt für passwortnahe Workflows.
bcrypt — Adaptive Passwort-Hashfunktion mit konfigurierbarem Kostenfaktor. Für die Speicherung von Passwörtern verwenden; nicht für Datenintegrität.
",
- },
},
"oauth-debugger": {
name: "OAuth-Debugger",
@@ -3045,16 +2693,6 @@ export default {
placeholder7: "https://yourapp.example.com/callback",
placeholder8: "openid profile email",
},
- edu: {
- heading1: "Was ist PKCE, und warum ist es wichtig?",
- p1: "
Proof Key for Code Exchange (PKCE, RFC 7636) wurde ursprünglich für mobile und native Apps entwickelt, die kein Client-Secret sicher speichern können. Dabei generiert der Client einen zufälligen code_verifier, leitet daraus eine code_challenge ab (SHA-256 + base64url) und sendet die Challenge mit der Autorisierungsanfrage. Beim Austausch des Autorisierungscodes gegen Tokens sendet der Client den ursprünglichen code_verifier. Der Autorisierungsserver überprüft, ob er mit der früheren Challenge übereinstimmt — und beweist so, dass die Token-Anfrage vom selben Client stammt, der den Flow gestartet hat.
Selbst für vertrauliche Clients (serverseitige Apps mit einem Client-Secret) wird PKCE inzwischen von OAuth 2.1 als Schutz gegen Interception-Angriffe auf Autorisierungscodes empfohlen.
",
- heading2: "Warum ist der Implicit Flow veraltet?",
- p2: "
Der Implicit Flow (response_type=token) wurde als Abkürzung für Single-Page-Apps konzipiert und gibt das Access Token direkt im URL-Fragment zurück. Das verursacht ernste Probleme: Tokens in URLs erscheinen im Browserverlauf, in Server-Logs und in Referrer-Headern, und der Flow ist anfällig für Token-Injection-Angriffe. OAuth 2.0 Security Best Current Practice (RFC 9700) und OAuth 2.1 entfernen den Implicit Flow explizit zugunsten von Authorization Code + PKCE, das SPAs sicher ohne Client-Secret verwenden können.
PKCE-Paar generieren: Erstellen Sie einen zufälligen code_verifier und berechnen Sie code_challenge = BASE64URL(SHA256(code_verifier)).
Weiterleitung zum Authorization-Endpunkt: Fügen Sie response_type=code, client_id, redirect_uri, scope, state, code_challenge und code_challenge_method=S256 hinzu.
Der Benutzer authentifiziert sich beim Autorisierungsserver und erteilt seine Zustimmung.
Empfang des Autorisierungscodes an Ihrer redirect_uri zusammen mit dem zurückgegebenen state — überprüfen Sie, ob state mit dem gesendeten Wert übereinstimmt.
Code gegen Tokens tauschen: POST an den Token-Endpunkt mit grant_type=authorization_code, code, redirect_uri, client_id und code_verifier.
Empfang des Access Tokens (und optional id_token und refresh_token) und Verwendung zum Aufrufen von APIs.
",
- },
},
"ladder-game": {
name: "Leiterspiel",
diff --git a/src/i18n/en.js b/src/i18n/en.js
index d0bcfd5..b52c941 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -50,35 +50,6 @@ export default {
searchResultsLabel: "Search Results",
noResults: "No tools found matching your search.",
noResultsHint: "Try a different search term.",
- editorialTitle: "What runs in the tab",
- editorialP1:
- "JSON.parse, Web Crypto, and the other browser APIs do the work. The Worker that serves the HTML does not receive the payload you paste into a tool.",
- editorialP2:
- "Several formatter sites store pastes and expose them through predictable share URLs. In November 2025, researchers showed years of saved JSON and code from those services included cloud keys, JWTs, and internal configs. A formatter that never uploads the document has no Recent Links page to scrape.",
- editorialP3:
- "Ads, when they appear, are labeled and non-personalized. They stay off password, SSH, Token Studio, WireGuard, certificate, secret-scanner, encoding, and pipe pages.",
- flagshipsTitle: "Eight tools people bookmark",
- flagshipJson:
- "Pretty-print, minify, and validate RFC 8259 JSON with line-level errors. No stored document, no share URL.",
- flagshipJwt:
- "Inspect JWT header and payload locally, generate keys, and simulate JWKS. The browser, extensions, and clipboard still see what you paste.",
- flagshipRegex:
- "Railroad diagrams and live matches so you can explain a pattern before you ship it.",
- flagshipCron:
- "Edit a five-field crontab and see the next run times in plain language.",
- flagshipPassword:
- "Draws from crypto.getRandomValues. Prefer a password manager for storage.",
- flagshipSsh:
- "Defaults to Ed25519, with ECDSA P-256 and RSA for older appliances. Private keys stay in the tab.",
- flagshipCurl:
- "Parse a curl command into method, URL, headers, and body, or build one from the form.",
- flagshipCidr:
- "Expand IPv4 and IPv6 CIDR into network, broadcast, host range, and reverse DNS labels.",
- howToTitle: "How to use it",
- howToP1:
- "Open a tool, paste or type, copy the result. Language and theme stay in localStorage on this device. Homepage search filters the catalog; ?q= deep-links that filter.",
- howToP2:
- "About, Privacy, and Terms cover the ads allow-list and edge logs. Security reports go to security@simpletool.app.",
meta: {
title: "SimpleTool — Developer tools in the browser",
description: "Client-side developer tools: JSON formatter, JWT inspector, regex tester, cron builder, password generator, SSH/certs, curl studio, and CIDR calculator.",
@@ -125,16 +96,6 @@ export default {
text7: "✓ Copied",
tpl8: "Max Depth",
},
- edu: {
- heading1: "What is JSON?",
- p1: "
JSON (JavaScript Object Notation) is the text format most HTTP APIs and many config files speak. RFC 8259 is the grammar: objects, arrays, strings, numbers, booleans, and null. It is language-independent. A Python service and a browser tab can exchange the same bytes.
This formatter exists because production JSON is usually minified, and minified JSON is where people miss a missing comma or an extra trailing one. Parse it here, in the tab, instead of posting it to a site that keeps a copy.
",
- heading2: "How to Use This Tool",
- p2: "
Paste your raw or messy JSON data into the Input JSON editor on the left.
Click the Format button to beautify the code with proper indentation and syntax highlighting.
Alternatively, use the Minify button to remove all whitespace for production use.
Check the Status indicator to ensure your JSON is valid; if there is an error, the tool will highlight the exact line.
Click Copy to save the formatted result to your clipboard or Clear to start over.
",
- heading3: "Common Use Cases",
- p3: "
API Debugging: Quickly format unreadable JSON responses from REST APIs to inspect data structures.
Config Validation: Ensure your package.json, tsconfig.json, or other configuration files are syntactically correct.
Data Preparation: Minify JSON data before embedding it in code or sending it over a network to save bandwidth.
Learning & Documentation: Use the beautified output to create clear examples for technical documentation or tutorials.
",
- heading4: "Pro Tips",
- p4: "
Use the Validate button if you only want to check for syntax errors without changing the formatting of your input.
Pay attention to the Max Depth statistic to identify overly complex or deeply nested structures that might cause performance issues.
Always use double quotes for keys and string values, as single quotes are invalid in standard JSON.
JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can be signed using a secret (with the HMAC algorithm) or a public/private key pair using RSA or ECDSA.
Because of their compact size, JWTs are commonly used in authentication and information exchange scenarios, such as Bearer tokens in HTTP Authorization headers.
",
- heading2: "How to Use This Tool",
- p2: "
Paste your token: Copy your encoded JWT (header.payload.signature) and paste it into the input field.
Automatic Decode: The tool will automatically detect the token and decode its components in real-time.
Inspect Header: Review the algorithm (alg) and token type (typ) in the Header section.
Analyze Payload: Examine the claims, such as expiration (exp), issuer (iss), and subject (sub) in the Payload section.
Verify Claims: Check the Claim Analysis box for human-readable dates and validation status.
",
- heading3: "Common Use Cases",
- p3: "
Authentication: Inspecting ID tokens or access tokens from providers like Auth0, Firebase, or AWS Cognito.
Debugging: Troubleshooting why a token is being rejected by your backend (e.g., checking if it has expired).
Security Auditing: Verifying that sensitive data is not being accidentally exposed in the unencrypted payload.
Development: Quickly viewing the contents of a token during API development without writing custom code.
",
- heading4: "Pro Tips",
- p4: "
JWT is not Encrypted: Remember that standard JWTs are only signed, not encrypted. Anyone with the token can read the payload. Never store passwords or private keys in a JWT.
Check Expiration: Always verify the exp claim. If a token is expired, it should be rejected by your application.
Use HTTPS: Since JWTs are often used for authentication, they must always be transmitted over secure HTTPS connections to prevent interception.
A JWT typically consists of three parts separated by dots:
Header: Usually consists of two parts: the type of the token (JWT) and the signing algorithm being used (e.g., HS256 or RS256).
Payload: Contains the claims — statements about an entity (typically, the user) and additional data.
Signature: Created by taking the encoded header, the encoded payload, a secret, and the algorithm specified in the header, and signing that.
",
- heading6: "Security Considerations",
- p6: "
While JWTs are signed to ensure integrity, they are typically NOT encrypted. This means that anyone who has the token can decode the header and payload to read the information inside. Never store sensitive information like passwords or private keys in a JWT payload.
Additionally, always verify the exp (expiration) claim to prevent replay attacks, and ensure your server validates the signature before trusting the data in the payload.
",
- heading7: "Pro Tips",
- p7: "
Use the exp claim to set a short expiration time for access tokens to minimize the impact of a stolen token.
Always use HTTPS to transmit JWTs to prevent interception via man-in-the-middle attacks.
If using asymmetric algorithms (like RS256), you can share your public key so other services can verify your tokens without being able to create them.
Check for the nbf (Not Before) claim if you want to issue a token that only becomes valid at a specific future time.
",
- },
cheatsheet: {
title: "JWT Quick Reference",
h0: "Structure",
@@ -229,16 +174,6 @@ export default {
text0: "✓ Copied!",
tpl1: "GUID:",
},
- edu: {
- heading1: "What is a UUID?",
- p1: "A Universally Unique Identifier (UUID) is a 128-bit number used to uniquely identify information in computer systems. They are designed to be generated independently without a central authority while maintaining a negligible probability of collision.",
- heading2: "How to Use This Tool",
- p2: "Select the UUID version (v1 for time-based, v4 for random) and the number of IDs you need. Click Generate to create a list of unique identifiers ready for use in your database or application.",
- heading3: "Common Use Cases",
- p3: "Primary keys in distributed databases, session identifiers, transaction tracking, and naming temporary files or resources where uniqueness is critical across multiple systems.",
- heading4: "Pro Tips",
- p4: "UUID v4 is the most common choice for general-purpose unique IDs because it relies on high-quality randomness. Use v1 if you need to sort IDs by creation time.",
- },
},
"password-generator": {
name: "Password Generator",
@@ -301,24 +236,6 @@ export default {
status6: "Weak",
text1: "Please enter a valid base email address.",
},
- edu: {
- heading1: "What Makes a Password Secure?",
- p1: "
A secure password is your first line of defense against unauthorized access. In the modern era of high-speed computing, secure is defined by entropy — the measure of randomness and unpredictability in a string. A strong password should be long (at least 16 characters), unique to every account, and composed of a diverse set of character types including uppercase, lowercase, numbers, and symbols.
Avoid using personal information like birthdays, pet names, or common dictionary words. Even complex-looking substitutions like P@ssw0rd123 are easily cracked by modern brute-force tools that use massive dictionaries of common patterns.
",
- heading2: "How to Use This Tool",
- p2: "
Select your mode: Choose between Password, Username, Passphrase, or Email Alias depending on your needs.
Adjust length: Use the slider to set the desired length. For passwords, 16+ characters is recommended for high security.
Configure options: Toggle character sets (symbols, numbers, etc.) or styles (readable vs. secure).
Generate: Click the Generate button to create your unique credential.
Copy: Use the copy icon to safely move the result to your clipboard or password manager.
",
- heading3: "Common Use Cases",
- p3: "
Account Security: Generating unique, high-entropy passwords for every online service you use.
System Administration: Creating secure temporary passwords for new users or service accounts.
Privacy Protection: Using Plus Aliases (e.g., user+service@domain.com) to track which services sell your data or to filter spam.
Memorable Security: Using the Passphrase generator for master passwords that need to be typed manually but remain resistant to cracking.
",
- heading4: "Pro Tips",
- p4: "
Use a Password Manager: Never try to memorize complex passwords. Use this tool to generate them, and store them in a reputable password manager like Bitwarden, 1Password, or KeePassXC.
Entropy over Complexity: Length is often more important than character variety. A 20-character lowercase password is often harder to crack than an 8-character complex one.
Rotate on Breach: If a service you use is compromised, use this generator to create a completely new, unrelated password immediately.
",
- heading5: "What Makes a Password Secure?",
- p5: "
A secure password is your first line of defense against unauthorized access. In the modern era of high-speed computing, secure is defined by entropy — the measure of randomness and unpredictability in a string. A strong password should be long (at least 16 characters), unique to every account, and composed of a diverse set of character types including uppercase, lowercase, numbers, and symbols.
Avoid using personal information like birthdays, pet names, or common dictionary words. Even complex-looking substitutions like P@ssw0rd123 are easily cracked by modern brute-force tools that use massive dictionaries of common patterns.
",
- heading6: "Entropy Explained",
- p6: "
Entropy is a measure of the randomness and unpredictability of a password, typically expressed in bits. The higher the entropy, the stronger the password. For example, a 10-character password using only lowercase letters has much lower entropy than a 10-character password using a full set of alphanumeric and special characters.
Our generator calculates entropy in real-time to give you an objective measure of your password strength. A password with over 100 bits of entropy is considered exceptionally strong and resistant to modern cracking techniques.
",
- heading7: "Best Practices",
- p7: "
Never Reuse Passwords: Use a unique password for every single account. If one service is breached, your other accounts remain safe.
Use a Password Manager: Since humans cannot remember dozens of complex, unique passwords, use a reputable password manager to store them securely.
Enable MFA: Multi-Factor Authentication adds a critical second layer of security even if your password is compromised.
Avoid Personal Info: Never include names, birthdays, or common words that can be found in a dictionary.
",
- heading8: "Pro Tips",
- p8: "
Use the Passphrase mode for accounts you need to type manually; they are easier to remember but still highly secure.
For maximum security, generate the longest password allowed by the service (often 64 or 128 characters).
Regularly audit your saved passwords using your password manager built-in security check features.
Consider using Plus Aliases (e.g., user+service@gmail.com) to track which services sell your data or send spam.
Cryptographic hashing is a mathematical process that transforms any input data (text or files) into a fixed-size string of characters, typically a hexadecimal number. This fingerprint is unique to the input; even a single bit change in the source data will result in a completely different hash, a phenomenon known as the avalanche effect.
Unlike encryption, hashing is a one-way function. You cannot reverse a hash to retrieve the original data. This makes it ideal for verifying data integrity, storing passwords securely (when combined with salts), and identifying files without exposing their contents.
",
- heading2: "How to Use This Tool",
- p2: "
Select Input Type: Choose the Text tab for strings or the File tab for local files.
Provide Input: Paste your text or drag and drop your file into the workspace.
Optional HMAC: Enter a secret key in the HMAC field if you need to generate a keyed hash for authentication.
Review Results: The tool automatically computes multiple hash variants (SHA-256, SHA-512, etc.) in real-time.
Verify Integrity: Use the Verify tab to compare a known hash against your input to check for tampering.
",
- heading3: "Common Use Cases",
- p3: "
Software Verification: Checking the SHA-256 checksum of a downloaded installer to ensure it has not been corrupted or modified by a third party.
Data Integrity: Generating hashes for database records or configuration files to detect unauthorized changes over time.
Password Security: Understanding how different algorithms (like SHA-512) transform plain text into secure representations.
Digital Forensics: Identifying duplicate files or verifying that evidence has not been altered.
",
- heading4: "Pro Tips",
- p4: "
Prefer SHA-256+: Always use SHA-256 or SHA-512 for security-sensitive tasks. MD5 and SHA-1 are cryptographically broken and should only be used for legacy compatibility.
Use HMAC for Authenticity: If you need to verify both integrity and the identity of the sender, use HMAC with a shared secret key.
Check the Source: When verifying downloads, always obtain the expected hash from a trusted, HTTPS-secured official website.
",
- },
cheatsheet: {
title: "Hash Algorithm Reference",
h0: "Algorithm Comparison",
@@ -471,16 +378,6 @@ export default {
text5: "Use at least /",
text6: "IPv6 /",
},
- edu: {
- heading1: "What is CIDR?",
- heading2: "How to Use This Tool",
- heading3: "Common Use Cases",
- heading4: "Pro Tips",
- p1: "Classless Inter-Domain Routing (CIDR) is a method for allocating IP addresses and IP routing. It replaced the older system based on classes (A, B, and C) to provide more flexibility and efficiency in address distribution.",
- p2: "Enter an IP address with a prefix (e.g., 192.168.1.0/24) or use the slider to adjust the prefix length. Click \"Run analysis\" to see network details, usable host ranges, and binary representations.",
- p3: "Planning network subnets for cloud infrastructure (VPCs), troubleshooting routing issues, calculating host capacity for a given prefix, and converting between CIDR and subnet masks.",
- p4: "Remember that in IPv4, the first and last addresses in a subnet are typically reserved for the network ID and broadcast address. In IPv6, subnets are almost always /64 for standard local networks.",
- },
cheatsheet: {
title: "Subnet Quick Reference",
h0: "Common Subnets",
@@ -655,16 +552,6 @@ export default {
tpl3: "Change defaults:",
tpl4: "No ports found matching your search.",
},
- edu: {
- heading1: "Port Categories & Security Guide",
- p1: "Well-known ports (0-1023) are assigned by IANA and require root privileges on Unix systems. Registered ports (1024-49151) are used by applications. Dynamic/ephemeral ports (49152-65535) are used for client-side connections. Understanding port ranges is essential for firewall configuration and network security.",
- heading2: "How to Use This Tool",
- p2: "Search by port number or service name to find protocol details and security risk levels. Filter by category (Well-Known, Registered, Dynamic) or protocol (TCP/UDP) to narrow results. Click any row to see full details including common vulnerabilities and hardening recommendations.",
- heading3: "Common Use Cases",
- p3: "Firewall rule configuration, network troubleshooting, identifying unexpected open ports during security audits, and quick reference for protocol port assignments.",
- heading4: "Pro Tips",
- p4: "Use the risk filter to quickly identify high-risk ports in your network. The Top 50 Most Common Ports section gives you an instant overview of the most frequently used services.",
- },
cheatsheet: {
c2: "\n
\n
Close unused ports: Reduce attack surface by disabling services you don't need
\n
Use firewalls: Implement network-level access controls
\n
Monitor traffic: Log connections to sensitive ports (22, 443, 3389)
\n
Prefer encrypted protocols: Use SSH (22) instead of Telnet (23), SFTP instead of FTP
\n
Change defaults: Consider non-standard ports for SSH/RDP (security through obscurity)
\n
",
c1: "\n
\n
Port
Service
Risk
\n
21
FTP
Unencrypted file transfers
\n
23
Telnet
Plain text authentication
\n
25
SMTP
Email spam relay risk
\n
53
DNS
DDoS amplification attacks
\n
445
SMB
Ransomware propagation
\n
3389
RDP
Brute force attacks
\n
",
@@ -908,16 +795,6 @@ export default {
text4: "Warnings",
alert0: "Please generate a configuration first",
},
- edu: {
- heading1: "About WireGuard",
- p1: "WireGuard is a modern, high-performance VPN protocol that uses state-of-the-art cryptography. It is designed to be simpler and faster than older protocols like OpenVPN and IPsec, with a much smaller attack surface due to its minimal codebase. WireGuard is now part of the Linux kernel and is supported natively on Windows, macOS, iOS, and Android.",
- heading2: "How to Use This Tool",
- p2: "Select a topology template (Point-to-Point, Hub-and-Spoke, Site-to-Site, or Road Warrior) to pre-fill a configuration. Click Generate Keys to create a new key pair locally in your browser. Fill in the required fields and click Generate Config to produce the WireGuard configuration file. Use Download .conf to save the file or Generate QR to create a QR code for mobile import.",
- heading3: "Common Use Cases",
- p3: "Remote access VPN for employees connecting to company networks. Site-to-site VPN for connecting branch office networks. Personal VPN server for secure browsing on public Wi-Fi. IoT device tunneling for secure communication between embedded devices.",
- heading4: "Pro Tips",
- p4: "Use PersistentKeepalive = 25 on clients behind NAT to maintain the tunnel when no traffic is flowing. PresharedKey adds an additional layer of symmetric encryption for post-quantum resistance. AllowedIPs = 0.0.0.0/0 routes all traffic through the tunnel (full tunnel), while specific CIDRs create a split tunnel.",
- },
cheatsheet: {
title: "WireGuard Quick Reference",
h0: "Interface Fields",
@@ -1061,14 +938,6 @@ export default {
tpl6: "Example:",
tpl7: "Click on any field in the diagram to see details.",
},
- edu: {
- heading1: "What are Protocol Headers?",
- p1: "Protocol headers are structured data that precede the payload in network packets. They contain control information such as source and destination addresses, protocol types, sequence numbers, and checksums. Understanding header structure is essential for network debugging, packet analysis, and protocol implementation.",
- heading2: "How to Use This Tool",
- p2: "Select a protocol from the tabs to view its header structure. Each colored block represents a field with its size indicated. Click on any field to see detailed information including field name and description, bit/byte offset, common values and their meanings, and RFC reference. Use the hex dump parser to analyze real packet captures by pasting hex output from tools like tcpdump or Wireshark.",
- heading3: "Common Use Cases",
- p3: "Packet analysis to understand the structure of captured network traffic, protocol learning as a visual aid for studying network protocols, debugging to identify malformed headers or incorrect field values, and development reference when implementing network protocols.",
- },
cheatsheet: {
c3: "\n
\n
Value
Protocol
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
Field
Size
Description
\n
Source Port
2 bytes
Sender port number
\n
Dest Port
2 bytes
Receiver port number
\n
Seq Number
4 bytes
Sequence number
\n
Ack Number
4 bytes
Acknowledgment number
\n
Data Offset
4 bits
Header length / 4
\n
Flags
9 bits
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2 bytes
Receive window size
\n
",
@@ -1144,16 +1013,6 @@ export default {
tpl0: "Differences",
tpl1: "No differences found (or empty input)",
},
- edu: {
- heading1: "What is Text Diffing?",
- p1: "Text diffing is the process of comparing two sequences of data to identify the differences between them. It highlights what has been added, removed, or modified. This is a fundamental operation in software development, data analysis, and content management, allowing users to track changes over time or compare different versions of a document.",
- heading2: "Diff Algorithms",
- p2: "Most text diffing tools use algorithms based on the Longest Common Subsequence (LCS) problem. The goal is to find the longest sequence of elements that appear in both texts in the same relative order. Common implementations include the Myers diff algorithm, which is highly efficient and used by Git, and the Hunt-McIlroy algorithm. These algorithms calculate the minimum number of edits required to transform one text into another.",
- heading3: "Use Cases",
- p3: "Code reviews so developers can see exactly what changed in a pull request. Version control systems like Git store history as a series of diffs to save space. Content auditing for writers and editors comparing drafts to ensure all requested changes were made. Data validation for comparing configuration files or database exports to find discrepancies.",
- heading4: "Pro Tips",
- p4: "Many diff tools have options to ignore changes in indentation or trailing spaces, which can reduce noise when comparing code. Include a few lines of unchanged text around differences (context lines) to understand the impact of changes. Word-level diffs are often more useful for prose and natural language documents while line-level diffs are standard for code.",
- },
},
"regex-visualizer": {
name: "Regex Studio",
@@ -1204,16 +1063,6 @@ export default {
tpl5: "No groups",
tpl6: "Invalid Regular Expression",
},
- edu: {
- heading1: "What are Regular Expressions?",
- p1: "Regular expressions (regex) are powerful patterns used to match character combinations in strings. They are essential tools for text processing, validation, and data extraction across programming languages. Regex patterns consist of literal characters and special metacharacters that define search rules. They are used in form validation, log parsing, search and replace operations, and data cleaning tasks.",
- heading2: "How to Use This Tool",
- p2: "Enter your regex pattern in the input field. The tool will automatically generate a railroad diagram visualizing the pattern structure. Add test text to see real-time match highlighting and explanations. Use the cheatsheet for quick reference on common patterns and syntax. Generate code snippets for your preferred programming language.",
- heading3: "Common Use Cases",
- p3: "Email validation to ensure user input matches proper email format before processing, log parsing to extract timestamps and IP addresses from server logs, data cleaning to remove unwanted characters or format phone numbers consistently, and search and replace for bulk text transformations with pattern matching.",
- heading4: "Pro Tips",
- p4: "Start simple and build complex patterns incrementally. Use non-capturing groups (?:) when you do not need to reference the match. Test edge cases like empty strings and special characters. Consider regex readability — complex patterns can be documented with comments.",
- },
cheatsheet: {
title: "Regex Quick Reference",
h0: "Character Classes",
@@ -1359,16 +1208,6 @@ export default {
text1: "Copy",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "About SSH Keys",
- p1: "SSH keys are a pair of cryptographic keys used for secure authentication to remote systems. The private key remains on your machine while the public key is placed on the server. This asymmetric approach is far more secure than password authentication and is the industry standard for server access, Git hosting, and automated deployments.",
- heading2: "How to Use This Tool",
- p2: "Select your preferred key type (RSA or ECDSA) and, for RSA, choose the key size. Add an optional comment to identify the key (commonly user@host). Click Generate to create your key pair. Copy the public key to add to your server and keep the private key secure on your local machine.",
- heading3: "Common Use Cases",
- p3: "Server authentication for passwordless SSH login to remote servers. Git hosting to authenticate with GitHub, GitLab, or Bitbucket without passwords. CI/CD pipelines for automated deployment scripts that need to connect to servers. Bastion host access for secure jump-host configurations.",
- heading4: "Pro Tips",
- p4: "Ed25519 keys are recommended for new deployments — they are faster and more secure than RSA. Always protect your private key with a strong passphrase. Use the ssh-agent to avoid entering your passphrase repeatedly during a session. Store keys in ~/.ssh/ with permissions set to 600.",
- },
cheatsheet: {
title: "SSH Key Quick Reference",
h0: "Key Types",
@@ -1408,16 +1247,6 @@ export default {
tpl2: "No Subject Alternative Names present.",
tpl3: "No extensions parsed.",
},
- edu: {
- heading1: "What are X.509 Certificates?",
- heading2: "How to Use This Tool",
- heading3: "Common Use Cases",
- heading4: "Pro Tips",
- p1: "
X.509 is a standard format for public key certificates, which are digital documents that securely bind a public key to an identity (such as a website, organization, or individual). These certificates are the foundation of the Public Key Infrastructure (PKI) used to secure the internet via HTTPS, as well as for signing emails and software.
An X.509 certificate contains the public key, the identity of the certificate holder, and the digital signature of the Certificate Authority (CA) that issued the certificate, proving its authenticity.
",
- p2: "
Paste your certificate: Copy your PEM-encoded certificate (including the BEGIN and END headers) and paste it into the input field.
Parse: Click \"Parse Certificate\" to extract and analyze the data.
Review Summary: Check the top cards for the Common Name (CN), Issuer, and validity dates.
Inspect Details: Expand the sections below to see the full Subject, Issuer, SANs, and technical extensions.
Check Status: Look at the status badge to see if the certificate is currently valid or expired.
",
- p3: "
SSL/TLS Troubleshooting: Diagnosing why a website is showing a \"Not Secure\" warning by checking for expiration or hostname mismatches.
Security Auditing: Verifying that a certificate was issued by a trusted CA and uses strong signature algorithms (like SHA-256).
Development: Inspecting self-signed certificates or CSRs (Certificate Signing Requests) during local development.
Infrastructure Management: Checking the Subject Alternative Names (SANs) to ensure all required subdomains are covered by a single certificate.
",
- p4: "
Check the SANs: Modern browsers rely on the Subject Alternative Name (SAN) extension rather than the Common Name (CN) for hostname verification. Always ensure your domain is listed in the SANs.
Verify the Chain: If a certificate is valid but still untrusted, it may be missing intermediate certificates. Check the \"Issuer\" to identify which intermediate CA you need to include on your server.
Fingerprints for Pinning: Use the SHA-256 Fingerprint provided by this tool if you need to implement certificate pinning in mobile applications or high-security APIs.
",
- },
cheatsheet: {
title: "X.509 Certificate Reference",
h0: "Certificate Fields",
@@ -1460,16 +1289,6 @@ export default {
text1: "Copy JSON",
text2: "Copy XML",
},
- edu: {
- heading1: "What is SAML?",
- p1: "Security Assertion Markup Language (SAML) is an XML-based open standard for exchanging authentication and authorization data between parties, in particular, between an Identity Provider (IdP) and a Service Provider (SP). SAML is the backbone of many Enterprise Single Sign-On (SSO) solutions, allowing users to access multiple applications with a single set of credentials. The most common version is SAML 2.0, which uses security tokens containing assertions to pass information about a principal between the IdP and the SP.",
- heading2: "How to Use This Tool",
- p2: "Paste the Base64-encoded SAMLResponse or raw XML into the input field. Toggle Attempt to inflate if decoding a Redirect binding payload. Click Decode response to parse the message. Check the Quick summary for the Issuer, Subject, and validity status. View decoded user attributes in the Attributes table. Use the tabs to see Pretty XML, Assertion details, or a JSON representation of the claims.",
- heading3: "Common Use Cases",
- p3: "SSO troubleshooting by diagnosing why a user cannot log in by checking for expired assertions or audience mismatches. Integration testing to verify that your Identity Provider is sending the correct attributes. Security auditing to inspect the raw XML and ensure assertions are properly signed. Development to quickly view the contents of a SAML message during Service Provider integration.",
- heading4: "Pro Tips",
- p4: "SAML messages sent via HTTP-Redirect are usually deflated (compressed) before being Base64 encoded — if your decode fails, try toggling the Attempt to inflate checkbox. Ensure the AudienceRestriction matches your SP Entity ID. If a response is marked invalid, check the NotBefore and NotOnOrAfter times for clock skew between the IdP and SP clocks.",
- },
cheatsheet: {
title: "SAML Quick Reference",
h0: "SAML Flow",
@@ -1512,16 +1331,6 @@ export default {
alert1: "Please enter a User-Agent string",
tpl2: "Raw Analysis Output",
},
- edu: {
- heading1: "What is a User-Agent?",
- p1: "A User-Agent is a string sent by your browser to every website you visit. It identifies the browser version, operating system, and device type, allowing servers to optimize content for your specific environment.",
- heading2: "How to Use This Tool",
- p2: "Paste a User-Agent string into the input box or click Use This to analyze your current browser string. The tool will break down the browser engine, OS version, and device characteristics.",
- heading3: "Common Use Cases",
- p3: "Debugging website compatibility issues, analyzing web server logs to identify bot traffic, verifying browser spoofing, and understanding device distribution in your audience.",
- heading4: "Pro Tips",
- p4: "Many modern browsers freeze or simplify their User-Agent strings to prevent fingerprinting. Always look for the Version or Chrome tokens for the most accurate version info.",
- },
},
"qr-code": {
name: "QR Code Studio",
@@ -1560,16 +1369,6 @@ export default {
alert3: "Copied!",
tpl4: "Upload an image to decode",
},
- edu: {
- heading1: "What are QR Codes?",
- p1: "Quick Response (QR) codes are two-dimensional barcodes that can store various types of data, most commonly URLs. They can be scanned by smartphones and specialized readers to quickly access information or trigger actions.",
- heading2: "How to Use This Tool",
- p2: "Enter the text or URL you want to encode. Adjust the size and error correction level if needed. The QR code updates in real-time and can be downloaded as an image for print or digital use.",
- heading3: "Common Use Cases",
- p3: "Sharing website links, providing Wi-Fi credentials, digital business cards (vCards), event ticketing, and mobile payments or authentication flows.",
- heading4: "Pro Tips",
- p4: "Higher error correction levels (H or Q) allow the QR code to remain scannable even if partially damaged or obscured, which is ideal for physical signage or branding.",
- },
},
"timestamp-converter": {
name: "Timestamp Converter",
@@ -1600,16 +1399,6 @@ export default {
text0: "Invalid timestamp",
tpl1: "Unix (milliseconds)",
},
- edu: {
- heading1: "What is Unix Time?",
- p1: "Unix time (also known as Epoch time, POSIX time, or Unix timestamp) is a system for describing a point in time. It is the number of seconds that have elapsed since the Unix Epoch, minus leap seconds; the Unix Epoch is 00:00:00 UTC on 1 January 1970. It is widely used in operating systems and file formats because it is a single integer, making it easy for computers to store and manipulate. This standard allows different systems to communicate time accurately regardless of their local timezone settings.",
- heading2: "How to Use This Tool",
- p2: "To convert Unix to Human: Enter the timestamp in the Unix Timestamp field and select whether it is in seconds or milliseconds. To convert Human to Unix: Select the date and time using the pickers, then choose your desired timezone. Use the Now button to quickly grab the current timestamp. View results in real-time, including ISO 8601, Local Time, UTC, and relative time. Click the Copy button next to any result to save it to your clipboard.",
- heading3: "Common Use Cases",
- p3: "Log analysis to convert cryptic timestamps found in server logs or database entries into readable dates for debugging. API development to verify that your backend is sending the correct epoch values. Data migration to ensure time-based data remains consistent when moving between systems. Scheduling to calculate future or past timestamps for cron jobs, expiration dates, or event triggers.",
- heading4: "Pro Tips",
- p4: "When working with JavaScript, remember that Date.now() returns milliseconds, while standard Unix timestamps are in seconds — divide by 1000 to convert. Always use the ISO 8601 format for data exchange between systems to ensure maximum compatibility. Be aware of the Year 2038 problem where 32-bit signed integers will overflow; modern systems use 64-bit integers which solves this for the foreseeable future.",
- },
},
"color-converter": {
name: "Color Converter",
@@ -1625,16 +1414,6 @@ export default {
badge7: "Client-Side Only",
badge8: "Privacy First",
},
- edu: {
- heading1: "Color Models Explained (HEX/RGB/HSL)",
- heading2: "How to Use This Tool",
- heading3: "Common Use Cases",
- heading4: "Pro Tips",
- p1: "
Color models are mathematical systems for representing colors. HEX (Hexadecimal) is a 6-digit code used in HTML and CSS, representing Red, Green, and Blue components. RGB (Red, Green, Blue) uses decimal values from 0 to 255 for each channel, often used in digital imaging.
HSL (Hue, Saturation, Lightness) is more intuitive for humans, as it describes color in terms of its base pigment (Hue), intensity (Saturation), and brightness (Lightness). Understanding these models helps in choosing the right format for your design and development needs, ensuring consistency across different platforms and devices.
",
- p2: "
Use the visual color picker to select a color by dragging the cursor in the saturation/brightness square and the hue slider.
Alternatively, enter a specific value in the \"Manual Input\" field (supports #hex, rgb, or hsl formats).
Observe the \"Preview\" box to see the selected color in real-time.
View the converted values in the HEX, RGB, HSL, and HSV cards below.
Click the \"Copy\" icon on any card to save that specific format to your clipboard.
",
- p3: "
Web Design: Convert colors from design tools (often RGB/HSL) to HEX codes for use in CSS stylesheets.
Brand Consistency: Ensure your brand colors are accurately represented across different digital formats and media.
UI Development: Quickly generate lighter or darker variations of a base color by adjusting the Lightness value in HSL.
Accessibility Testing: Use the preview to check if your chosen colors provide enough contrast for readable text and UI elements.
",
- p4: "
Use HSL when designing UI components like buttons, as it makes it easy to create hover states by simply adjusting the lightness value.
When working with transparency in CSS, prefer rgba() or hsla() for better readability and control over the alpha channel.
Always check for color contrast ratios to ensure your designs are accessible to users with visual impairments.
",
- },
},
"unit-converter": {
name: "Unit Converter",
@@ -1652,16 +1431,6 @@ export default {
text0: "Select units to see the conversion formula",
text1: "Enter a valid number",
},
- edu: {
- heading1: "Measurement Systems Overview",
- p1: "Measurement systems are collections of units of measurement and rules relating them to each other. The two most common systems are the Metric System (International System of Units or SI) and the Imperial System. The Metric system is based on powers of ten, making it highly logical and easy to scale. The Imperial system, primarily used in the United States, uses units like inches, feet, and pounds which have historical origins and less uniform conversion factors. Understanding the differences between these systems is essential for science, engineering, international trade, and daily tasks like cooking or traveling.",
- heading2: "How to Use This Tool",
- p2: "Select the measurement category (e.g., Length, Weight, Temperature) from the grid at the top. Choose the unit you want to convert from in the From dropdown menu. Enter the value you wish to convert in the input field. Select the target unit in the To dropdown menu. The converted value will appear instantly along with the mathematical formula used for the conversion.",
- heading3: "Common Use Cases",
- p3: "Travel to convert distances from kilometers to miles or temperatures from Celsius to Fahrenheit. Cooking to translate recipes between metric (grams/milliliters) and imperial (ounces/cups) measurements. Engineering and science for precise conversions between different units of pressure, energy, or speed. Digital storage to understand the difference between Megabytes, Gigabytes, and Terabytes.",
- heading4: "Pro Tips",
- p4: "Use the Swap button to quickly reverse the conversion direction between your selected units. Always double-check the specific unit type, especially for volume and weight, as names can be similar across different systems such as US vs. UK gallons. When performing multiple conversions in a sequence, keep as many decimal places as possible until the final result to avoid cumulative rounding errors.",
- },
},
"yaml-toml-converter": {
name: "Config Converter",
@@ -1695,16 +1464,6 @@ export default {
text6: "⚠️ TOML conversion failed:",
tpl7: "Await conversion.",
},
- edu: {
- heading1: "YAML vs TOML vs JSON Compared",
- p1: "JSON is the most widely used format for data exchange due to its simplicity and native support in JavaScript. YAML (YAML Ain't Markup Language) is a human-friendly data serialization standard that uses indentation to represent structure, making it popular for complex configuration files. TOML (Tom's Obvious, Minimal Language) is designed to be easy to read and write due to its obvious semantics and is often used for project configuration. While JSON is strict and compact, YAML and TOML prioritize human readability and ease of manual editing.",
- heading2: "How to Use This Tool",
- p2: "Paste your configuration data (JSON, YAML, or TOML) into the source text area on the left. The tool will automatically detect the source format, or you can select it manually from the dropdown. Click Validate only to check for syntax errors without performing a conversion. Click one of the conversion buttons (to JSON, to YAML, to TOML) to translate your data into that format. View the results in the output panels on the right and click Copy to save them to your clipboard.",
- heading3: "Common Use Cases",
- p3: "Infrastructure as Code to convert between JSON and YAML when working with Kubernetes manifests, Docker Compose files, or AWS CloudFormation templates. Project configuration to migrate settings between package.json (JSON) and pyproject.toml or Cargo.toml (TOML). API prototyping to quickly visualize how a complex data structure looks in different formats. Legacy migration to translate old configuration files into modern formats while ensuring data integrity.",
- heading4: "Pro Tips",
- p4: "Use YAML for CI/CD pipelines where readability of complex nested structures is essential for maintainability. Prefer TOML for application-level configuration files to provide a clean interface for end-users who might need to edit them manually. When converting from YAML to JSON, be aware of YAML type coercion issues (where NO can be interpreted as false) and ensure your data types are preserved correctly.",
- },
cheatsheet: {
title: "Format Comparison",
h0: "Syntax Differences",
@@ -1755,16 +1514,6 @@ export default {
text1: "Copy",
text2: "Copied!",
},
- edu: {
- heading1: "What is htpasswd?",
- p1: "
The htpasswd file is a flat-file database used to store usernames and hashed passwords for basic authentication on Apache and Nginx web servers. It is a simple but effective way to protect specific directories or administrative panels on a website without needing a full database-backed authentication system.
Each line in an htpasswd file represents a single user and follows the format username:hashed_password.
",
- heading2: "How to Use This Tool",
- p2: "
Enter Username: Type the username you want to use for authentication.
Provide Password: Enter a password or click Generate strong to create a secure one.
Select Algorithm: Choose Bcrypt (-B) for modern security or Apache MD5 (-m) for legacy compatibility.
Generate: Click Generate entry to create the hashed string.
Copy or Download: Copy the resulting line to your clipboard or download it as a file to upload to your server.
",
- heading3: "Common Use Cases",
- p3: "
Admin Panels: Protecting sensitive areas like /admin or /wp-admin with an extra layer of server-level security.
Staging Sites: Restricting access to development or staging environments so they are not indexed by search engines or viewed by the public.
Private Repositories: Securing local Git or SVN repositories served over HTTP.
API Gateways: Implementing simple authentication for internal microservices or legacy APIs.
",
- heading4: "Pro Tips",
- p4: "
Always Use Bcrypt: Bcrypt is intentionally slow and uses a cost factor to resist brute-force attacks. It is significantly more secure than the legacy MD5 or SHA1 options.
Secure the File: Name your file .htpasswd (with a leading dot) and store it outside your web root directory to prevent it from being downloaded.
HTTPS is Mandatory: Basic authentication sends credentials in a format that is easily reversible. Never use it over unencrypted HTTP; always ensure your site is served over HTTPS.
",
- },
},
"mock-data-generator": {
name: "Mock Data Generator",
@@ -1798,16 +1547,6 @@ export default {
text1: "Copy",
text2: "No rows to preview.",
},
- edu: {
- heading1: "What is Mock Data?",
- p1: "
Mock data is synthetic information that mimics real-world data without containing any sensitive or personally identifiable information (PII). It is essential for developers and testers who need realistic datasets to build and validate applications without risking data breaches or violating privacy regulations like GDPR or CCPA. By using mock data, you can simulate various scenarios, from standard user profiles to edge cases, ensuring your software handles all types of input gracefully.
",
- heading2: "Testing Strategies",
- p2: "
Effective testing requires diverse datasets. Use mock data to seed your development databases, perform load testing with thousands of records, or verify UI layouts with varying string lengths. It is particularly useful for integration testing where you need predictable responses from external APIs. By generating data locally, you can create consistent test environments that are easy to reset and reproduce, leading to more reliable and faster development cycles.
",
- heading3: "Data Privacy in Mocks",
- p3: "
Privacy is a top priority in modern software development. Using real production data in development or staging environments is a major security risk. Mock data generators solve this by producing fake but structurally correct data. Our tool runs entirely in your browser, meaning your configuration and the generated data stay in your browser and are not sent to our servers. This Privacy-First approach ensures that even the process of creating mock data is secure and compliant with the strictest security standards.
",
- heading4: "Pro Tips",
- p4: "
Consistency: When generating multiple related datasets, use fixed seeds or patterns to maintain referential integrity between tables.
Edge Cases: Include empty strings, very long names, and special characters to test your application robustness.
Format Switching: Use the SQL export for quick database seeding and CSV for spreadsheet analysis or bulk imports.
Automation: The patterns this tool uses can be integrated into your automated CI/CD pipelines for continuous testing.
",
- },
cheatsheet: {
title: "Mock Data Field Types",
h0: "Available Types",
@@ -1906,16 +1645,6 @@ export default {
js: {
tpl0: "aLtErNaTiNg:",
},
- edu: {
- heading1: "Naming Conventions Explained (camelCase/snake_case/etc)",
- heading2: "How to Use This Tool",
- heading3: "Common Use Cases",
- heading4: "Pro Tips",
- p1: "
Naming conventions are sets of rules for choosing the character sequence to be used for identifiers which denote variables, types, functions, and other entities in source code and documentation. camelCase (e.g., myVariable) starts with a lowercase letter and capitalizes the first letter of each subsequent word. snake_case (e.g., my_variable) uses underscores to separate words.
PascalCase (e.g., MyVariable) capitalizes the first letter of every word, while kebab-case (e.g., my-variable) uses hyphens to separate words. These conventions are not just about aesthetics; they are critical for code readability, maintainability, and adhering to the idiomatic standards of different programming languages and frameworks.
",
- p2: "
Type or paste your text into the \"Input Text\" area at the top of the page.
The tool will automatically convert your input into over a dozen different case styles in real-time.
Scroll through the \"Conversion Results\" grid to find the specific case style you need.
Click the \"Copy\" icon next to any result to save it to your clipboard.
Use the \"Clear\" button to remove all input and start a new conversion.
",
- p3: "
Refactoring Code: Quickly convert variable names when migrating code between languages with different standards (e.g., Java's camelCase to Python's snake_case).
Web Development: Transform text into kebab-case for CSS class names or URL slugs to ensure SEO-friendly and valid identifiers.
Database Design: Convert application-level camelCase identifiers into snake_case for database table and column names.
Content Creation: Use Title Case or Sentence case to quickly format headings and body text for articles or documentation.
",
- p4: "
Be consistent within your project; even if you prefer one style, always follow the existing convention of the codebase you are working on.
Use descriptive names that convey meaning, rather than just following the case convention (e.g., isUserLoggedIn is better than status).
When working with APIs, be prepared to convert between cases, as backend systems often use snake_case while frontends prefer camelCase.
",
- },
},
"code-minifier": {
name: "Code Minifier",
@@ -1949,16 +1678,6 @@ export default {
text2: "📋 Copy",
tpl3: "All processing happens in your browser. Your code is processed locally and not sent to our servers.",
},
- edu: {
- heading1: "What is Minification?",
- heading2: "How to Use This Tool",
- heading3: "Common Use Cases",
- heading4: "Pro Tips",
- p1: "
Minification is the process of removing all unnecessary characters from source code without changing its functionality. This includes removing whitespace, newlines, comments, and sometimes shortening variable names. The goal is to reduce the file size of the code, which in turn reduces the amount of data that needs to be transferred over the network.
This leads to faster page load times and improved performance for web applications. While minification is essential for production environments, it makes the code nearly impossible for humans to read and debug. Therefore, it is typically performed as a final step in the build process before deploying to a live server.
",
- p2: "
Select the programming language (JavaScript, CSS, HTML, or JSON) from the tabs at the top.
Paste your source code into the \"Input Code\" text area on the left.
Click the \"Minify Code\" button to reduce the file size for production use.
Alternatively, click \"Beautify Code\" to add indentation and formatting for better readability.
View the results in the \"Output Code\" area and click \"Copy\" or \"Download\" to save your optimized code.
",
- p3: "
Production Deployment: Minify your JS and CSS files before uploading them to your web server to improve site speed and SEO.
Email Templates: Minify HTML email code to ensure it stays under the size limits of various email clients and loads quickly for recipients.
API Responses: Minify JSON data before sending it from your server to reduce bandwidth usage and egress costs.
Code Auditing: Use the beautifier to format messy or minified code you've found online to understand how it works.
",
- p4: "
Always keep your original, unminified source code for development and only use the minified version for production deployment.
Use Source Maps to bridge the gap between minified production code and readable development code, allowing for efficient debugging in the browser.
Combine minification with Gzip or Brotli compression on your server for the maximum possible reduction in file size and transfer time.
Choosing the right image format is crucial for web performance and visual quality. JPEG is best for photographs and complex images with many colors, as it uses lossy compression to achieve small file sizes. PNG is ideal for images that require transparency or have sharp edges and solid colors (like logos and icons), as it uses lossless compression.
WebP is a modern format that provides superior lossy and lossless compression, often resulting in significantly smaller file sizes than JPEG or PNG while maintaining high quality.
",
- heading2: "How to Use This Tool",
- p2: "
Upload your image by dropping it into the Upload Image zone or clicking to browse your files.
Select your desired output format (PNG, JPG, or WebP) from the Convert Format options.
If you have selected a lossy format like JPG or WebP, use the quality slider to balance file size and visual fidelity.
Optionally, use the Resize Image settings to scale your image by percentage or specific dimensions.
Click Convert & Resize Image and then Download to save your optimized asset.
",
- heading3: "Common Use Cases",
- p3: "
Web Optimization: Convert large PNG or JPEG images to WebP to improve your website load speed and Core Web Vitals.
Social Media: Resize and compress photos to meet the specific upload requirements of platforms like Instagram, Twitter, or LinkedIn.
Email Marketing: Reduce the file size of images in your email campaigns to ensure they load quickly for all recipients.
App Development: Generate multiple sizes of the same icon or asset for different screen densities using the resizing features.
",
- heading4: "Pro Tips",
- p4: "
Use WebP whenever possible for web projects, as it is supported by all modern browsers and offers the best compression-to-quality ratio.
When converting to JPEG, a quality setting of 70-80% usually provides the best balance between file size and visual quality for most web uses.
Always keep your original high-resolution images and only convert or resize copies for specific use cases to avoid losing quality over time through repeated compression.
",
- },
},
"css-gradient": {
name: "Gradient Generator",
@@ -2054,16 +1763,6 @@ export default {
alert2: "Failed to copy CSS to clipboard",
tpl3: "Loading screens and overlays",
},
- edu: {
- heading1: "What are CSS Gradients?",
- heading2: "Linear vs Radial vs Conic Gradients",
- heading3: "Browser Support and Performance",
- heading4: "Pro Tips for Better Gradients",
- p1: "
CSS gradients are a powerful feature that allows you to display smooth transitions between two or more specified colors. Unlike traditional background images, gradients are generated by the browser, which means they are infinitely scalable, consume less bandwidth, and can be easily manipulated with code. They are commonly used for backgrounds, buttons, and decorative elements to add depth and visual interest to web designs.
",
- p2: "
There are three main types of CSS gradients:
Linear Gradients: Colors transition along a straight line. You can control the direction using angles (e.g., 45deg) or keywords (e.g., to right).
Radial Gradients: Colors radiate outward from a central point (the \"origin\"). You can specify the shape (circle or ellipse) and the position of the center.
Conic Gradients: Colors transition around a center point, similar to a pie chart or a color wheel. While less common, they are great for creating unique patterns and UI elements.
",
- p3: "
Modern CSS gradients are widely supported across all major browsers, including Chrome, Firefox, Safari, and Edge. Because they are rendered mathematically by the browser's engine, they are extremely performant compared to high-resolution images. However, for very complex gradients with dozens of color stops, it's always good practice to test performance on lower-end devices. For older browsers (like IE9 and below), it's recommended to provide a solid color fallback.
",
- p4: "
Avoid \"Gray Dead Zones\": When transitioning between two distant colors, the midpoint can sometimes look muddy or gray. Adding a vibrant intermediate color stop can keep the gradient looking fresh.
Use Subtle Transitions: Often, the best gradients are the ones you barely notice. Using colors that are close to each other on the color wheel creates a sophisticated, professional look.
Layering: You can stack multiple gradients on top of each other using the background-image property, allowing for incredibly complex and artistic effects.
Accessibility: Ensure that any text placed over a gradient has sufficient contrast. Use tools to check WCAG compliance for all color combinations.
",
- },
},
"curl-studio": {
name: "Curl Studio",
@@ -2132,16 +1831,6 @@ export default {
text2: "Copied!",
tpl3: "Logs will appear here after masking...",
},
- edu: {
- heading1: "What is PII?",
- p1: "
Personally Identifiable Information (PII) is any data that can be used to identify a specific individual. This includes direct identifiers like names, email addresses, and phone numbers, as well as indirect identifiers like IP addresses, physical locations, and credit card numbers. In the context of server logs, PII often appears in request parameters, headers, or error messages.
Protecting PII is a critical part of modern data security and is required by various legal frameworks around the world.
Regulations like the General Data Protection Regulation (GDPR) in Europe and the California Consumer Privacy Act (CCPA) in the United States impose strict rules on how personal data is handled. These laws require organizations to implement privacy by design and to minimize the collection and storage of personal data.
Sharing raw logs containing PII with third-party support teams or developers can lead to compliance violations. Masking or redacting this data before it leaves your secure environment is a key step in maintaining regulatory compliance.
",
- heading3: "Masking Strategies",
- p3: "
There are several ways to handle sensitive data in logs:
Redaction: Replacing the sensitive value with a generic placeholder like [EMAIL_REDACTED]. This is the most common approach for sharing logs.
Anonymization: Irreversibly transforming data so the individual can no longer be identified.
Pseudonymization: Replacing identifiers with a consistent alias (like a hash) so you can still correlate events without knowing the user identity.
Our tool focuses on redaction, using pattern matching to find and replace common PII formats instantly.
",
- heading4: "Pro Tips",
- p4: "
Use the Custom Keywords field to redact internal identifiers like API keys, session tokens, or proprietary project names that are not covered by standard patterns.
Always perform masking locally (as this tool does) to ensure sensitive data never touches a third-party server during the scrubbing process.
If you are correlating logs across multiple systems, consider using a consistent salt with a hashing tool instead of simple redaction to maintain traceability.
Regularly audit your application code to prevent PII from being logged in the first place; log at the source is the best defense.
Email authentication is a collection of techniques used to provide verifiable information about the origin of an email message. By validating the sender's identity, these protocols help mail servers distinguish between legitimate messages and spoofed or fraudulent ones (like phishing). The three pillars of modern email authentication are SPF, DKIM, and DMARC.
When an email is received, the receiving server performs these checks and records the results in the email's headers, which this tool parses for you.
",
- p2: "
SPF (Sender Policy Framework): A DNS-based mechanism that lists the IP addresses and domains authorized to send email on behalf of your domain.
DKIM (DomainKeys Identified Mail): Adds a digital signature to the email, allowing the receiver to verify that the message was indeed sent by the domain owner and hasn't been tampered with in transit.
DMARC (Domain-based Message Authentication, Reporting, and Conformance): Ties SPF and DKIM together. It tells the receiver what to do if the authentication fails (e.g., \"none,\" \"quarantine,\" or \"reject\") and provides a way for receivers to report back to the sender.
",
- p3: "
Phishing emails often use \"spoofing\" to appear as if they come from a trusted source. Our analyzer looks for common red flags, such as a mismatch between the \"From\" address (what the user sees) and the \"Return-Path\" (where the mail actually came from). We also extract and analyze URLs in the email body to identify suspicious links, such as those using Punycode (lookalike domains) or IP addresses instead of hostnames.
By reviewing the \"Findings\" section, you can quickly identify these signals and determine if an email is safe to interact with.
",
- p4: "
Always check the \"Authentication-Results\" header first; it provides the definitive outcome of the security checks performed by your mail provider.
Use the \"Mask PII\" option when sharing reports with others to protect sensitive email addresses and IP information.
Pay close attention to the \"Reply-To\" header; if it differs from the \"From\" address, it may be a sign of a Business Email Compromise (BEC) attack.
Review the \"Routing Hops\" to see the path the email took; an unusually long or complex path through unknown servers can be a sign of relay abuse.
",
- },
cheatsheet: {
title: "Email Auth Quick Reference",
h0: "What these checks mean",
@@ -2527,16 +2206,6 @@ export default {
text9: "Paste SQL first.",
text10: "✓ Copied",
},
- edu: {
- heading1: "Why Format SQL?",
- p1: "SQL can quickly become complex and difficult to read, especially when dealing with multiple joins, subqueries, and nested conditions. Formatting SQL involves adding consistent indentation, line breaks, and capitalization of keywords. This makes the logic of the query much easier to follow, which is essential for debugging, code reviews, and maintaining large database schemas over time. A well-formatted query is also less prone to logical errors during manual edits.",
- heading2: "How to Use This Tool",
- p2: "Paste your raw SQL query into the Input SQL editor on the left. Select your database dialect (Postgres or MySQL) and preferred keyword case (UPPER or lower). Click the Format button to beautify your query with proper indentation and spacing. Use the Validate button to check for common structural issues like unclosed quotes or unbalanced parentheses. Click Copy to save the formatted SQL to your clipboard or Clear to start over.",
- heading3: "Common Use Cases",
- p3: "Code reviews to format messy SQL before submitting a pull request. Debugging to clean up queries generated by ORMs to understand exactly what is being executed against your database. Documentation to create clear and readable examples for technical guides, wikis, or README files. Legacy cleanup to quickly refactor old, unformatted scripts into a modern, readable style.",
- heading4: "Pro Tips",
- p4: "Use Common Table Expressions (CTEs) with the WITH clause to break down complex queries into smaller, more manageable parts. Always use descriptive aliases for tables and columns to make the intent of your query clear. Use the Minify button if you need to compress your SQL into a single line for use in configuration files or command-line tools.",
- },
cheatsheet: {
title: "SQL Formatting Tips",
h0: "Quick wins",
@@ -2605,16 +2274,6 @@ export default {
text15: "Note: Values are masked for safety. Diff is heuristic and does not include comments/order.",
text16: "✓ Copied",
},
- edu: {
- heading1: "Environment Variables Best Practices",
- heading2: "Secret Management",
- heading3: ".env Security",
- heading4: "Pro Tips",
- p1: "
Environment variables are a fundamental part of the \"Twelve-Factor App\" methodology, which advocates for a strict separation of configuration from code. By using environment variables, you can run the same code in different environments (development, staging, production) simply by changing the configuration values.
Best practices include using descriptive, uppercase names (e.g., DATABASE_URL), providing default values for non-critical settings, and never hardcoding sensitive information directly into your source control.
",
- p2: "
Secrets are a special category of environment variables that contain sensitive information like API keys, database passwords, and private certificates. Managing these securely is critical to preventing data breaches. You should use a dedicated secret management service (like AWS Secrets Manager, HashiCorp Vault, or Cloudflare Secrets) for production environments.
For local development, .env files are commonly used, but they should never be committed to your git repository. Always add *.env to your .gitignore file.
",
- p3: "
When sharing .env files with teammates for debugging, there is a high risk of accidentally exposing production secrets. Our manager helps mitigate this risk by providing a \"Mask sensitive values\" feature. It uses heuristics to identify keys like SECRET, TOKEN, or PASSWORD and replaces their values with a masked version (e.g., ab...yz (32)).
This allows you to compare the structure and non-sensitive values of your environment files without leaking the actual secrets.
",
- p4: "
Use the \"Swap\" button to quickly reverse the comparison direction between Environment A and Environment B.
Leverage the \"Filter keys\" input to focus on specific groups of variables, such as all keys starting with AWS_ or DB_.
Always include a .env.example file in your repository with dummy values to show other developers which variables are required for the app to run.
Remember that environment variables are typically strings; if your app needs a boolean or a number, ensure you parse the value correctly in your code.
",
- },
cheatsheet: {
title: "Dotenv Notes",
h0: "Masking strategy",
@@ -2674,16 +2333,6 @@ export default {
text7: "No preview yet.",
text8: "✓ Copied",
},
- edu: {
- heading1: "What is SVG?",
- p1: "SVG (Scalable Vector Graphics) is an XML-based vector image format for two-dimensional graphics with support for interactivity and animation. Unlike raster formats like JPEG or PNG, SVGs are defined by mathematical paths, which means they can be scaled to any size without losing quality. This makes them perfect for logos, icons, and illustrations on the web, where they remain crisp on everything from mobile screens to high-resolution desktop monitors.",
- heading2: "How to Use This Tool",
- p2: "Paste your SVG code into the SVG Input text area on the left. Click Preview to see the graphic and extract its color palette. Use the Optimize or Minify buttons to clean up the markup and reduce file size. Optionally, replace specific colors by entering new values in the Colors panel and clicking Apply. Click Copy or Download to save your sanitized and optimized SVG.",
- heading3: "Common Use Cases",
- p3: "Icon management to clean up SVGs exported from design tools like Figma or Illustrator. Theming to quickly change the colors of an icon set to match your brand palette. Security to sanitize SVGs from untrusted sources to remove potential scripts or external references. Performance to minify SVG markup to reduce the size of inline graphics and improve page load times.",
- heading4: "Pro Tips",
- p4: "Use the currentColor button to convert all explicit fills and strokes to currentColor, making your SVG easily styleable via CSS. Always optimize your SVGs before using them in production to ensure they are as small as possible. When creating SVGs in design tools, use Outline Stroke and Simplify Path features to reduce the complexity of the generated code before optimization.",
- },
cheatsheet: {
title: "SVG Safety Notes",
h0: "Sanitization",
@@ -2837,16 +2486,6 @@ export default {
text28: "Click Scan to find secrets.",
text29: "✓ Copied",
},
- edu: {
- heading1: "What are Secret Leaks?",
- p1: "Secret leaks occur when sensitive information like API keys, passwords, or private tokens are accidentally committed to version control or shared in public forums. These leaks can lead to unauthorized access, data breaches, and financial loss. This tool helps identify common secret patterns locally in your browser before you share or commit your code.",
- heading2: "How to Use This Tool",
- p2: "Paste your code, configuration, or log files into the input area. Click the Scan button to analyze the text for potential secrets. Review the findings and advice for each detected item. Use the Copy Redacted button to get a share-safe version of your text with secrets masked.",
- heading3: "Common Use Cases",
- p3: "Pre-commit checks to scan your code before committing to ensure no secrets are included. Log redaction to mask sensitive tokens in logs before sharing them with support or teammates. Security auditing to quickly audit configuration files for hardcoded credentials.",
- heading4: "Pro Tips",
- p4: "Always rotate your credentials immediately if you discover they have been leaked. Use environment variables or secret managers instead of hardcoding secrets in your source code. Enable Include low severity patterns for a more thorough scan, but be prepared for more false positives.",
- },
cheatsheet: {
title: "What to do if you find a secret",
h0: "Immediate steps",
@@ -2943,16 +2582,6 @@ export default {
text15: "✓ Valid JWKS structure (",
text16: "Please paste a JWK.",
},
- edu: {
- heading1: "What is a JWT?",
- p1: "A JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. A JWT consists of three Base64URL-encoded parts separated by dots: the Header (algorithm and type), the Payload (claims), and the Signature. The signature ensures the token has not been tampered with. JWTs are commonly used for authentication and information exchange in web APIs. Standard claims include sub (subject), iss (issuer), aud (audience), exp (expiration), nbf (not before), iat (issued at), and jti (JWT ID).",
- heading2: "JWT Algorithms",
- p2: "HS256/384/512 uses HMAC with SHA-2 and a shared secret — simple but both parties must hold the same key. RS256/384/512 uses RSA PKCS#1 v1.5 asymmetric signatures — ideal for microservice architectures where services only need the public key. ES256/384/512 uses ECDSA with NIST curves for smaller signatures than RSA with equivalent security. PS256/384/512 uses RSA-PSS, a probabilistic variant preferred over RS* in modern systems.",
- heading3: "JWK and JWKS",
- p3: "A JSON Web Key (JWK) is a JSON structure representing a cryptographic key. A JWK Set (JWKS) is a JSON structure containing an array of JWKs under the keys property. Services publish their JWKS at a well-known URL (e.g., /.well-known/jwks.json), allowing clients to fetch public keys for JWT verification without out-of-band key exchange. Keys in a JWKS are identified by their kid (Key ID), which JWT headers reference.",
- heading4: "Security Best Practices",
- p4: "Always validate exp, nbf, iss, and aud claims server-side. Never use the alg: none algorithm in production — it removes all signature protection. Prefer asymmetric algorithms (RS*, ES*, PS*) over HMAC when multiple services need to verify tokens. Rotate keys regularly and use kid to identify which key was used to sign each token. Store private keys securely — never commit them to version control. Use short expiration times and refresh tokens rather than long-lived JWTs.",
- },
},
"encoding-workbench": {
name: "Encoding & Decoding Workbench",
@@ -3016,16 +2645,6 @@ export default {
js: {
noLayers: "No recognisable encoding layers detected.",
},
- edu: {
- heading1: "What is Encoding vs Hashing?",
- heading2: "How to Use This Tool",
- heading3: "Layered Encoding Explained",
- heading4: "Hash Algorithm Guide",
- p1: "
Encoding transforms data into a different representation that can be reversed (decoded). Common formats include Base64 — used to transmit binary data over text channels — URL encoding, HTML entity encoding, and hexadecimal. Encoding is not encryption; it offers no confidentiality.
Hashing is a one-way mathematical transformation. A cryptographic hash function takes any input and produces a fixed-length fingerprint. You cannot reverse a hash to retrieve the original input. Hashes are used to verify file integrity, store passwords securely, and generate digital signatures.
",
- p2: "
Encode / Decode tab: Paste text and choose an operation (Base64, URL, HTML, Hex), or click Auto-Detect Layers to automatically unwrap multiple nested encodings.
Hash tab: Enter text or select a file, choose algorithms, and click Hash All. Enable HMAC mode to compute keyed hashes with a shared secret.
Identify tab: Paste an unknown hash or encoded string and click Identify to see likely algorithms with confidence ratings.
",
- p3: "
Real-world data is often encoded multiple times. For example, a payload could be URL-encoded, then Base64-encoded, then placed inside a hex string. The Auto-Detect Layers feature inspects the input pattern, attempts each decoding in sequence, and visualises every step as a card so you can see exactly how the data was wrapped.
",
- p4: "
MD5 — 128-bit output. Cryptographically broken; use only for legacy compatibility or non-security checksums.
SHA-1 — 160-bit output. Deprecated for security use. Still found in older Git commits and certificates.
SHA-256 — 256-bit output. General-purpose, widely used in TLS, code signing, and data integrity checks.
Proof Key for Code Exchange (PKCE, RFC 7636) was originally designed for mobile and native apps that cannot securely store a client secret. It works by having the client generate a random code_verifier, derive a code_challenge from it (SHA-256 + base64url), and send the challenge with the authorization request. When exchanging the authorization code for tokens, the client sends the original code_verifier. The authorization server verifies it matches the earlier challenge — proving the token request came from the same client that started the flow.
Even for confidential clients (server-side apps with a client secret), PKCE is now recommended by OAuth 2.1 as a defense against authorization code interception attacks.
",
- heading2: "Why Is the Implicit Flow Deprecated?",
- p2: "
The implicit flow (response_type=token) was designed as a shortcut for single-page apps, returning the access token directly in the URL fragment. This creates serious problems: tokens in URLs appear in browser history, server logs, and referrer headers, and the flow is vulnerable to token injection attacks. OAuth 2.0 Security Best Current Practice (RFC 9700) and OAuth 2.1 explicitly remove the implicit flow in favor of Authorization Code + PKCE, which SPAs can use safely without a client secret.
",
- heading3: "Key OAuth 2.1 Changes",
- p3: "
PKCE required for all Authorization Code flows, including confidential clients.
Implicit flow removed — use Authorization Code + PKCE instead.
Resource Owner Password Credentials (ROPC) removed — the password grant type is deprecated.
Refresh token rotation required for public clients — a new refresh token must be issued with each use.
Redirect URI exact matching required — no pattern matching or wildcards.
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos que es fácil de leer y escribir para los humanos y fácil de analizar y generar para las máquinas. Está basado en un subconjunto del Estándar del Lenguaje de Programación JavaScript. JSON es un formato de texto completamente independiente del lenguaje, pero utiliza convenciones que son familiares para los programadores de la familia de lenguajes C.
Estas propiedades hacen de JSON un lenguaje ideal de intercambio de datos para aplicaciones web, APIs y archivos de configuración. Se ha convertido en el estándar de facto para el intercambio de datos en la web, reemplazando en gran medida a XML debido a su menor tamaño y mejor rendimiento.
",
- heading2: "Cómo usar esta herramienta",
- p2: "
Pega tus datos JSON sin procesar o desordenados en el editor de JSON de entrada a la izquierda.
Haz clic en el botón Formatear para embellecer el código con sangría adecuada y resaltado de sintaxis.
Alternativamente, usa el botón Minificar para eliminar todos los espacios en blanco para uso en producción.
Verifica el indicador de Estado para asegurarte de que tu JSON es válido; si hay un error, la herramienta resaltará la línea exacta.
Haz clic en Copiar para guardar el resultado formateado en tu portapapeles o en Limpiar para empezar de nuevo.
",
- heading3: "Casos de uso comunes",
- p3: "
Depuración de API: Formatea rápidamente respuestas JSON ilegibles de APIs REST para inspeccionar estructuras de datos.
Validación de configuración: Asegúrate de que tus archivos package.json, tsconfig.json u otros archivos de configuración sean sintácticamente correctos.
Preparación de datos: Minifica datos JSON antes de incrustarlos en código o enviarlos por red para ahorrar ancho de banda.
Aprendizaje y documentación: Usa la salida formateada para crear ejemplos claros para documentación técnica o tutoriales.
",
- heading4: "Consejos profesionales",
- p4: "
Usa el botón Validar si solo deseas verificar errores de sintaxis sin cambiar el formato de tu entrada.
Presta atención a la estadística de Profundidad máxima para identificar estructuras excesivamente complejas o profundamente anidadas que podrían causar problemas de rendimiento.
Usa siempre comillas dobles para claves y valores de cadena, ya que las comillas simples son inválidas en JSON estándar.
JSON Web Token (JWT) es un estándar abierto (RFC 7519) que define una forma compacta y autocontenida de transmitir información de forma segura entre partes como un objeto JSON. Esta información se puede verificar y es confiable porque está firmada digitalmente. Los JWT pueden firmarse usando un secreto (con el algoritmo HMAC) o un par de claves pública/privada usando RSA o ECDSA.
Debido a su tamaño compacto, los JWT se usan comúnmente en escenarios de autenticación e intercambio de información, como los tokens Bearer en los encabezados HTTP Authorization.
",
- heading2: "Cómo usar esta herramienta",
- p2: "
Pega tu token: Copia tu JWT codificado (header.payload.signature) y pégalo en el campo de entrada.
Decodificación automática: La herramienta detectará automáticamente el token y decodificará sus componentes en tiempo real.
Inspecciona el Header: Revisa el algoritmo (alg) y el tipo de token (typ) en la sección Header.
Analiza el Payload: Examina los claims, como la expiración (exp), el emisor (iss) y el sujeto (sub) en la sección Payload.
Verifica los claims: Consulta el cuadro de Análisis de claims para ver fechas legibles y el estado de validación.
",
- heading3: "Casos de uso comunes",
- p3: "
Autenticación: Inspeccionar tokens de ID o tokens de acceso de proveedores como Auth0, Firebase o AWS Cognito.
Depuración: Averiguar por qué tu backend rechaza un token (por ejemplo, comprobando si ha expirado).
Auditoría de seguridad: Verificar que no se esté exponiendo accidentalmente información sensible en el payload sin cifrar.
Desarrollo: Ver rápidamente el contenido de un token durante el desarrollo de una API sin escribir código personalizado.
",
- heading4: "Consejos profesionales",
- p4: "
El JWT no está cifrado: Recuerda que los JWT estándar solo están firmados, no cifrados. Cualquiera que tenga el token puede leer el payload. Nunca almacenes contraseñas ni claves privadas en un JWT.
Verifica la expiración: Comprueba siempre el claim exp. Si un token ha expirado, tu aplicación debe rechazarlo.
Usa HTTPS: Como los JWT suelen usarse para autenticación, siempre deben transmitirse por conexiones HTTPS seguras para evitar su interceptación.
",
- heading5: "Estructura del token (header.payload.signature)",
- p5: "
Un JWT normalmente consta de tres partes separadas por puntos:
Header: Suele constar de dos partes: el tipo de token (JWT) y el algoritmo de firma utilizado (por ejemplo, HS256 o RS256).
Payload: Contiene los claims, es decir, afirmaciones sobre una entidad (normalmente el usuario) y datos adicionales.
Signature: Se crea tomando el header codificado, el payload codificado, un secreto y el algoritmo especificado en el header, y firmando ese conjunto.
",
- heading6: "Consideraciones de seguridad",
- p6: "
Aunque los JWT se firman para garantizar su integridad, normalmente NO están cifrados. Esto significa que cualquiera que tenga el token puede decodificar el header y el payload para leer la información que contienen. Nunca almacenes información sensible, como contraseñas o claves privadas, en el payload de un JWT.
Además, verifica siempre el claim exp (expiración) para prevenir ataques de repetición, y asegúrate de que tu servidor valide la firma antes de confiar en los datos del payload.
",
- heading7: "Consejos profesionales",
- p7: "
Usa el claim exp para establecer un tiempo de expiración corto en los tokens de acceso y minimizar el impacto de un token robado.
Usa siempre HTTPS para transmitir los JWT y evitar su interceptación mediante ataques de intermediario (man-in-the-middle).
Si usas algoritmos asimétricos (como RS256), puedes compartir tu clave pública para que otros servicios verifiquen tus tokens sin poder crearlos.
Comprueba el claim nbf (Not Before) si quieres emitir un token que solo sea válido a partir de un momento futuro específico.
",
- },
cheatsheet: {
title: "Referencia rápida de JWT",
h0: "Estructura",
@@ -193,16 +167,6 @@ export default {
text0: "✓ ¡Copiado!",
tpl1: "GUID:",
},
- edu: {
- heading1: "¿Qué es un UUID?",
- p1: "Un Identificador Único Universal (UUID) es un número de 128 bits utilizado para identificar de forma única información en sistemas informáticos. Están diseñados para generarse de forma independiente sin necesidad de una autoridad central, manteniendo una probabilidad de colisión insignificante.",
- heading2: "Cómo usar esta herramienta",
- p2: "Selecciona la versión de UUID (v1 basada en el tiempo, v4 aleatoria) y la cantidad de identificadores que necesitas. Haz clic en Generar para crear una lista de identificadores únicos listos para usar en tu base de datos o aplicación.",
- heading3: "Casos de uso comunes",
- p3: "Claves primarias en bases de datos distribuidas, identificadores de sesión, seguimiento de transacciones y nombrado de archivos o recursos temporales donde la unicidad es fundamental entre múltiples sistemas.",
- heading4: "Consejos profesionales",
- p4: "UUID v4 es la opción más común para identificadores únicos de propósito general porque se basa en aleatoriedad de alta calidad. Usa v1 si necesitas ordenar los identificadores por fecha de creación.",
- },
},
"password-generator": {
name: "Generador de Contraseñas",
@@ -265,24 +229,6 @@ export default {
status6: "Débil",
text1: "Introduce una dirección de correo base válida.",
},
- edu: {
- heading1: "¿Qué hace segura a una contraseña?",
- p1: "
Una contraseña segura es tu primera línea de defensa contra el acceso no autorizado. En la era moderna de la computación de alta velocidad, \"segura\" se define por la entropía — la medida de aleatoriedad e impredecibilidad en una cadena. Una contraseña fuerte debe ser larga (al menos 16 caracteres), única para cada cuenta, y compuesta de un conjunto diverso de tipos de caracteres incluyendo mayúsculas, minúsculas, números y símbolos.
Evita usar información personal como fechas de nacimiento, nombres de mascotas o palabras comunes del diccionario. Incluso sustituciones de aspecto complejo como P@ssw0rd123 son fácilmente descifradas por herramientas modernas de fuerza bruta que usan diccionarios masivos de patrones comunes.
",
- heading2: "Cómo usar esta herramienta",
- p2: "
Selecciona tu modo: Elige entre Contraseña, Nombre de usuario, Frase de contraseña o Alias de correo según tus necesidades.
Ajusta la longitud: Usa el deslizador para establecer la longitud deseada. Para contraseñas, se recomiendan 16+ caracteres para alta seguridad.
Configura las opciones: Activa o desactiva conjuntos de caracteres (símbolos, números, etc.) o estilos (legible vs. seguro).
Generar: Haz clic en el botón Generar para crear tu credencial única.
Copiar: Usa el ícono de copiar para mover el resultado de forma segura a tu portapapeles o gestor de contraseñas.
",
- heading3: "Casos de uso comunes",
- p3: "
Seguridad de cuentas: Generar contraseñas únicas y de alta entropía para cada servicio en línea que uses.
Administración de sistemas: Crear contraseñas temporales seguras para nuevos usuarios o cuentas de servicio.
Protección de privacidad: Usar alias Plus (ej., usuario+servicio@dominio.com) para rastrear qué servicios venden tus datos o para filtrar spam.
Seguridad memorable: Usar el generador de frases de contraseña para contraseñas maestras que necesitan escribirse manualmente pero siguen siendo resistentes al descifrado.
",
- heading4: "Consejos profesionales",
- p4: "
Usa un gestor de contraseñas: Nunca intentes memorizar contraseñas complejas. Usa esta herramienta para generarlas y guárdalas en un gestor de contraseñas de confianza como Bitwarden, 1Password o KeePassXC.
Entropía sobre complejidad: La longitud suele ser más importante que la variedad de caracteres. Una contraseña de 20 caracteres en minúsculas suele ser más difícil de descifrar que una de 8 caracteres compleja.
Rotación tras brecha: Si un servicio que usas se ve comprometido, usa este generador para crear una contraseña completamente nueva e independiente de inmediato.
",
- heading5: "¿Qué hace segura a una contraseña?",
- p5: "
Una contraseña segura es tu primera línea de defensa contra el acceso no autorizado. En la era moderna de la computación de alta velocidad, \"segura\" se define por la entropía — la medida de aleatoriedad e impredecibilidad en una cadena. Una contraseña fuerte debe ser larga (al menos 16 caracteres), única para cada cuenta, y compuesta de un conjunto diverso de tipos de caracteres incluyendo mayúsculas, minúsculas, números y símbolos.
Evita usar información personal como fechas de nacimiento, nombres de mascotas o palabras comunes del diccionario. Incluso sustituciones de aspecto complejo como P@ssw0rd123 son fácilmente descifradas por herramientas modernas de fuerza bruta que usan diccionarios masivos de patrones comunes.
",
- heading6: "Entropía explicada",
- p6: "
La entropía es una medida de la aleatoriedad e impredecibilidad de una contraseña, expresada típicamente en bits. Cuanto mayor sea la entropía, más fuerte será la contraseña. Por ejemplo, una contraseña de 10 caracteres usando solo letras minúsculas tiene mucha menor entropía que una de 10 caracteres usando un conjunto completo de caracteres alfanuméricos y especiales.
Nuestro generador calcula la entropía en tiempo real para darte una medida objetiva de la fortaleza de tu contraseña. Una contraseña con más de 100 bits de entropía se considera excepcionalmente fuerte y resistente a las técnicas modernas de descifrado.
",
- heading7: "Mejores prácticas",
- p7: "
Nunca reutilices contraseñas: Usa una contraseña única para cada cuenta. Si un servicio es comprometido, tus otras cuentas permanecen seguras.
Usa un gestor de contraseñas: Como los humanos no pueden recordar docenas de contraseñas complejas y únicas, usa un gestor de contraseñas de confianza para almacenarlas de forma segura.
Activa MFA: La autenticación multifactor agrega una segunda capa crítica de seguridad incluso si tu contraseña es comprometida.
Evita información personal: Nunca incluyas nombres, fechas de nacimiento o palabras comunes que se puedan encontrar en un diccionario.
",
- heading8: "Consejos profesionales",
- p8: "
Usa el modo de frase de contraseña para cuentas que necesitas escribir manualmente; son más fáciles de recordar pero siguen siendo muy seguras.
Para máxima seguridad, genera la contraseña más larga permitida por el servicio (a menudo 64 o 128 caracteres).
Audita regularmente tus contraseñas guardadas usando las funciones de verificación de seguridad integradas de tu gestor de contraseñas.
Considera usar alias Plus (ej., usuario+servicio@gmail.com) para rastrear qué servicios venden tus datos o envían spam.
El hashing criptográfico es un proceso matemático que transforma cualquier dato de entrada (texto o archivos) en una cadena de caracteres de tamaño fijo, generalmente un número hexadecimal. Esta huella digital es única para la entrada; incluso un solo bit de cambio en los datos de origen produce un hash completamente diferente, un fenómeno conocido como efecto avalancha.
A diferencia del cifrado, el hashing es una función unidireccional. No es posible invertir un hash para recuperar los datos originales. Esto lo hace ideal para verificar la integridad de los datos, almacenar contraseñas de forma segura (combinado con salts) e identificar archivos sin exponer su contenido.
",
- heading2: "Cómo usar esta herramienta",
- p2: "
Selecciona el tipo de entrada: Elige la pestaña Texto para cadenas o la pestaña Archivo para archivos locales.
Proporciona la entrada: Pega tu texto o arrastra y suelta tu archivo en el área de trabajo.
HMAC opcional: Introduce una clave secreta en el campo HMAC si necesitas generar un hash con clave para autenticación.
Revisa los resultados: La herramienta calcula automáticamente varias variantes de hash (SHA-256, SHA-512, etc.) en tiempo real.
Verifica la integridad: Usa la pestaña Verificar para comparar un hash conocido con tu entrada y detectar manipulaciones.
",
- heading3: "Casos de uso comunes",
- p3: "
Verificación de software: Comprobar la suma de comprobación SHA-256 de un instalador descargado para asegurarte de que no se haya dañado ni modificado por un tercero.
Integridad de datos: Generar hashes de registros de bases de datos o archivos de configuración para detectar cambios no autorizados con el tiempo.
Seguridad de contraseñas: Comprender cómo distintos algoritmos (como SHA-512) transforman texto plano en representaciones seguras.
Informática forense: Identificar archivos duplicados o verificar que la evidencia no haya sido alterada.
",
- heading4: "Consejos profesionales",
- p4: "
Prefiere SHA-256 o superior: Usa siempre SHA-256 o SHA-512 para tareas sensibles a la seguridad. MD5 y SHA-1 están criptográficamente rotos y solo deben usarse por compatibilidad heredada.
Usa HMAC para autenticidad: Si necesitas verificar tanto la integridad como la identidad del remitente, usa HMAC con una clave secreta compartida.
Comprueba la fuente: Al verificar descargas, obtén siempre el hash esperado de un sitio web oficial de confianza y protegido con HTTPS.
",
- },
cheatsheet: {
title: "Referencia de algoritmos de hash",
h0: "Comparación de algoritmos",
@@ -435,16 +371,6 @@ export default {
text5: "Usa al menos /",
text6: "IPv6 /",
},
- edu: {
- heading1: "¿Qué es CIDR?",
- heading2: "Cómo usar esta herramienta",
- heading3: "Casos de uso comunes",
- heading4: "Consejos profesionales",
- p1: "El Enrutamiento entre Dominios sin Clases (CIDR) es un método para asignar direcciones IP y enrutamiento IP. Reemplazó al sistema más antiguo basado en clases (A, B y C) para proporcionar más flexibilidad y eficiencia en la distribución de direcciones.",
- p2: "Ingresa una dirección IP con un prefijo (ej., 192.168.1.0/24) o usa el deslizador para ajustar la longitud del prefijo. Haz clic en \"Ejecutar análisis\" para ver detalles de la red, rangos de hosts utilizables y representaciones binarias.",
- p3: "Planificación de subredes de red para infraestructura en la nube (VPCs), solución de problemas de enrutamiento, cálculo de capacidad de hosts para un prefijo dado y conversión entre CIDR y máscaras de subred.",
- p4: "Recuerda que en IPv4, las primeras y últimas direcciones en una subred están típicamente reservadas para el ID de red y la dirección de difusión. En IPv6, las subredes son casi siempre /64 para redes locales estándar.",
- },
cheatsheet: {
title: "Referencia rápida de subred",
h0: "Subredes comunes",
@@ -619,16 +545,6 @@ export default {
tpl3: "Cambia los valores predeterminados:",
tpl4: "No se encontraron puertos que coincidan con tu búsqueda.",
},
- edu: {
- heading1: "Categorías de puertos y guía de seguridad",
- p1: "Los puertos bien conocidos (0-1023) son asignados por IANA y requieren privilegios de root en sistemas Unix. Los puertos registrados (1024-49151) los usan las aplicaciones. Los puertos dinámicos/efímeros (49152-65535) se usan para conexiones del lado del cliente. Comprender los rangos de puertos es esencial para la configuración de firewalls y la seguridad de red.",
- heading2: "Cómo usar esta herramienta",
- p2: "Busca por número de puerto o nombre de servicio para encontrar detalles del protocolo y niveles de riesgo de seguridad. Filtra por categoría (Bien conocidos, Registrados, Dinámicos) o protocolo (TCP/UDP) para acotar los resultados. Haz clic en cualquier fila para ver los detalles completos, incluidas las vulnerabilidades comunes y las recomendaciones de protección.",
- heading3: "Casos de uso comunes",
- p3: "Configuración de reglas de firewall, resolución de problemas de red, identificación de puertos abiertos inesperados durante auditorías de seguridad y referencia rápida de asignaciones de puertos de protocolos.",
- heading4: "Consejos profesionales",
- p4: "Usa el filtro de riesgo para identificar rápidamente los puertos de alto riesgo en tu red. La sección Los 50 puertos más comunes te ofrece una visión instantánea de los servicios más utilizados.",
- },
cheatsheet: {
c2: "\n
\n
Cierra los puertos sin usar: Reduce la superficie de ataque desactivando servicios que no necesitas
\n
Usa cortafuegos: Implementa controles de acceso a nivel de red
\n
Monitoriza el tráfico: Registra las conexiones a puertos sensibles (22, 443, 3389)
\n
Prefiere protocolos cifrados: Usa SSH (22) en lugar de Telnet (23), y SFTP en lugar de FTP
\n
Cambia los valores por defecto: Considera puertos no estándar para SSH/RDP (seguridad por ocultación)
\n
",
c1: "\n
\n
Puerto
Servicio
Riesgo
\n
21
FTP
Transferencias de archivos sin cifrar
\n
23
Telnet
Autenticación en texto plano
\n
25
SMTP
Riesgo de reenvío de spam
\n
53
DNS
Ataques de amplificación DDoS
\n
445
SMB
Propagación de ransomware
\n
3389
RDP
Ataques de fuerza bruta
\n
",
@@ -872,16 +788,6 @@ export default {
text4: "Advertencias",
alert0: "Genera primero una configuración",
},
- edu: {
- heading1: "Acerca de WireGuard",
- p1: "WireGuard es un protocolo VPN moderno y de alto rendimiento que utiliza criptografía de última generación. Está diseñado para ser más simple y rápido que protocolos más antiguos como OpenVPN e IPsec, con una superficie de ataque mucho menor gracias a su base de código mínima. WireGuard ahora forma parte del kernel de Linux y cuenta con soporte nativo en Windows, macOS, iOS y Android.",
- heading2: "Cómo usar esta herramienta",
- p2: "Selecciona una plantilla de topología (Punto a punto, Concentrador y radios, Sitio a sitio o Road Warrior) para prellenar una configuración. Haz clic en Generar claves para crear un nuevo par de claves localmente en tu navegador. Completa los campos obligatorios y haz clic en Generar configuración para producir el archivo de configuración de WireGuard. Usa Descargar .conf para guardar el archivo o Generar QR para crear un código QR para la importación móvil.",
- heading3: "Casos de uso comunes",
- p3: "VPN de acceso remoto para empleados que se conectan a redes corporativas. VPN de sitio a sitio para conectar redes de sucursales. Servidor VPN personal para navegación segura en redes Wi-Fi públicas. Tunelización de dispositivos IoT para comunicación segura entre dispositivos embebidos.",
- heading4: "Consejos profesionales",
- p4: "Usa PersistentKeepalive = 25 en clientes detrás de NAT para mantener el túnel activo cuando no hay tráfico. PresharedKey añade una capa adicional de cifrado simétrico para resistencia post-cuántica. AllowedIPs = 0.0.0.0/0 enruta todo el tráfico a través del túnel (túnel completo), mientras que CIDR específicos crean un túnel dividido.",
- },
cheatsheet: {
title: "Referencia rápida de WireGuard",
h0: "Campos de la interfaz",
@@ -1025,14 +931,6 @@ export default {
tpl6: "Ejemplo:",
tpl7: "Haz clic en cualquier campo del diagrama para ver los detalles.",
},
- edu: {
- heading1: "¿Qué son los encabezados de protocolo?",
- p1: "Los encabezados de protocolo son datos estructurados que preceden a la carga útil en los paquetes de red. Contienen información de control, como direcciones de origen y destino, tipos de protocolo, números de secuencia y sumas de comprobación. Comprender la estructura de los encabezados es fundamental para la depuración de redes, el análisis de paquetes y la implementación de protocolos.",
- heading2: "Cómo usar esta herramienta",
- p2: "Selecciona un protocolo en las pestañas para ver la estructura de su encabezado. Cada bloque de color representa un campo con su tamaño indicado. Haz clic en cualquier campo para ver información detallada, incluidos el nombre y la descripción del campo, el desplazamiento en bits/bytes, los valores comunes y su significado, y la referencia RFC. Usa el analizador de volcado hex para analizar capturas de paquetes reales pegando la salida hexadecimal de herramientas como tcpdump o Wireshark.",
- heading3: "Casos de uso comunes",
- p3: "Análisis de paquetes para comprender la estructura del tráfico de red capturado, aprendizaje de protocolos como ayuda visual para estudiar protocolos de red, depuración para identificar encabezados mal formados o valores de campo incorrectos, y referencia de desarrollo al implementar protocolos de red.",
- },
cheatsheet: {
c3: "\n
\n
Valor
Protocolo
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
Campo
Tamaño
Descripción
\n
Source Port
2 bytes
Número de puerto del emisor
\n
Dest Port
2 bytes
Número de puerto del receptor
\n
Seq Number
4 bytes
Número de secuencia
\n
Ack Number
4 bytes
Número de acuse de recibo
\n
Data Offset
4 bits
Longitud del encabezado / 4
\n
Flags
9 bits
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2 bytes
Tamaño de la ventana de recepción
\n
",
@@ -1108,16 +1006,6 @@ export default {
tpl0: "Diferencias",
tpl1: "Sin diferencias (o entrada vacía)",
},
- edu: {
- heading1: "¿Qué es la comparación de texto (diff)?",
- p1: "La comparación de texto (diffing) es el proceso de comparar dos secuencias de datos para identificar las diferencias entre ellas. Resalta lo que se ha añadido, eliminado o modificado. Esta es una operación fundamental en el desarrollo de software, el análisis de datos y la gestión de contenido, que permite a los usuarios rastrear cambios a lo largo del tiempo o comparar diferentes versiones de un documento.",
- heading2: "Algoritmos de diff",
- p2: "La mayoría de las herramientas de comparación de texto usan algoritmos basados en el problema de la subsecuencia común más larga (LCS). El objetivo es encontrar la secuencia más larga de elementos que aparecen en ambos textos en el mismo orden relativo. Las implementaciones comunes incluyen el algoritmo de diff de Myers, que es muy eficiente y lo usa Git, y el algoritmo de Hunt-McIlroy. Estos algoritmos calculan el número mínimo de ediciones necesarias para transformar un texto en otro.",
- heading3: "Casos de uso",
- p3: "Revisiones de código para que los desarrolladores vean exactamente qué cambió en un pull request. Los sistemas de control de versiones como Git almacenan el historial como una serie de diffs para ahorrar espacio. Auditoría de contenido para que escritores y editores comparen borradores y verifiquen que se hicieron todos los cambios solicitados. Validación de datos para comparar archivos de configuración o exportaciones de bases de datos y encontrar discrepancias.",
- heading4: "Consejos profesionales",
- p4: "Muchas herramientas de diff tienen opciones para ignorar cambios en la sangría o los espacios finales, lo que puede reducir el ruido al comparar código. Incluye algunas líneas de texto sin cambios alrededor de las diferencias (líneas de contexto) para entender el impacto de los cambios. Los diffs a nivel de palabra suelen ser más útiles para prosa y documentos en lenguaje natural, mientras que los diffs a nivel de línea son el estándar para el código.",
- },
},
"regex-visualizer": {
name: "Visualizador de Regex",
@@ -1168,16 +1056,6 @@ export default {
tpl5: "Sin grupos",
tpl6: "Expresión regular inválida",
},
- edu: {
- heading1: "¿Qué son las expresiones regulares?",
- p1: "Las expresiones regulares (regex) son patrones potentes que se usan para buscar combinaciones de caracteres en cadenas de texto. Son herramientas esenciales para el procesamiento de texto, la validación y la extracción de datos en distintos lenguajes de programación. Los patrones regex constan de caracteres literales y metacaracteres especiales que definen las reglas de búsqueda. Se usan en la validación de formularios, el análisis de logs, las operaciones de buscar y reemplazar, y las tareas de limpieza de datos.",
- heading2: "Cómo usar esta herramienta",
- p2: "Introduce tu patrón regex en el campo de entrada. La herramienta generará automáticamente un diagrama de ferrocarril que visualiza la estructura del patrón. Añade texto de prueba para ver el resaltado de coincidencias y las explicaciones en tiempo real. Usa la chuleta para una referencia rápida de patrones y sintaxis comunes. Genera fragmentos de código para tu lenguaje de programación preferido.",
- heading3: "Casos de uso comunes",
- p3: "Validación de correo electrónico para asegurarte de que la entrada del usuario coincide con el formato de correo correcto antes de procesarla, análisis de logs para extraer marcas de tiempo y direcciones IP de los registros del servidor, limpieza de datos para eliminar caracteres no deseados o dar formato uniforme a números de teléfono, y búsqueda y reemplazo para transformaciones masivas de texto mediante coincidencia de patrones.",
- heading4: "Consejos profesionales",
- p4: "Empieza con algo simple y construye patrones complejos de forma incremental. Usa grupos que no capturan (?:) cuando no necesites hacer referencia a la coincidencia. Prueba casos límite como cadenas vacías y caracteres especiales. Ten en cuenta la legibilidad del regex: los patrones complejos se pueden documentar con comentarios.",
- },
cheatsheet: {
title: "Referencia rápida de regex",
h0: "Clases de caracteres",
@@ -1323,16 +1201,6 @@ export default {
text1: "Copiar",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "Acerca de las claves SSH",
- p1: "Las claves SSH son un par de claves criptográficas utilizadas para la autenticación segura en sistemas remotos. La clave privada permanece en tu máquina, mientras que la clave pública se coloca en el servidor. Este enfoque asimétrico es mucho más seguro que la autenticación por contraseña y es el estándar de la industria para el acceso a servidores, el alojamiento de Git y los despliegues automatizados.",
- heading2: "Cómo usar esta herramienta",
- p2: "Selecciona el tipo de clave que prefieras (RSA o ECDSA) y, para RSA, elige el tamaño de clave. Añade un comentario opcional para identificar la clave (habitualmente usuario@host). Haz clic en Generar para crear tu par de claves. Copia la clave pública para añadirla a tu servidor y mantén la clave privada segura en tu máquina local.",
- heading3: "Casos de uso comunes",
- p3: "Autenticación de servidor para inicio de sesión SSH sin contraseña en servidores remotos. Alojamiento de Git para autenticarte en GitHub, GitLab o Bitbucket sin contraseñas. Pipelines de CI/CD para scripts de despliegue automatizado que necesitan conectarse a servidores. Acceso a hosts bastión para configuraciones seguras de servidor de salto (jump host).",
- heading4: "Consejos profesionales",
- p4: "Se recomiendan las claves Ed25519 para nuevos despliegues: son más rápidas y seguras que RSA. Protege siempre tu clave privada con una passphrase segura. Usa ssh-agent para evitar introducir tu passphrase repetidamente durante una sesión. Guarda las claves en ~/.ssh/ con permisos establecidos en 600.",
- },
cheatsheet: {
title: "Referencia rápida de claves SSH",
h0: "Tipos de clave",
@@ -1372,16 +1240,6 @@ export default {
tpl2: "Sin nombres alternativos.",
tpl3: "Sin extensiones analizadas.",
},
- edu: {
- heading1: "¿Qué son los certificados X.509?",
- heading2: "Cómo usar esta herramienta",
- heading3: "Casos de uso comunes",
- heading4: "Consejos profesionales",
- p1: "
X.509 es un formato estándar para certificados de clave pública, que son documentos digitales que vinculan de forma segura una clave pública a una identidad (como un sitio web, una organización o una persona). Estos certificados son la base de la infraestructura de clave pública (PKI) utilizada para asegurar internet mediante HTTPS, así como para firmar correos electrónicos y software.
Un certificado X.509 contiene la clave pública, la identidad del titular del certificado y la firma digital de la autoridad de certificación (CA) que emitió el certificado, lo que demuestra su autenticidad.
",
- p2: "
Pega tu certificado: Copia tu certificado codificado en PEM (incluidos los encabezados BEGIN y END) y pégalo en el campo de entrada.
Analiza: Haz clic en \"Analizar certificado\" para extraer y analizar los datos.
Revisa el resumen: Consulta las tarjetas superiores para ver el nombre común (CN), el emisor y las fechas de validez.
Inspecciona los detalles: Expande las secciones de abajo para ver el Subject, el Issuer, los SAN y las extensiones técnicas completas.
Comprueba el estado: Consulta la insignia de estado para ver si el certificado está actualmente vigente o ha expirado.
",
- p3: "
Resolución de problemas SSL/TLS: Diagnosticar por qué un sitio web muestra una advertencia de \"No seguro\" comprobando si hay expiración o discrepancias de nombre de host.
Auditoría de seguridad: Verificar que un certificado fue emitido por una CA de confianza y usa algoritmos de firma fuertes (como SHA-256).
Desarrollo: Inspeccionar certificados autofirmados o CSR (solicitudes de firma de certificado) durante el desarrollo local.
Gestión de infraestructura: Comprobar los nombres alternativos del sujeto (SAN) para asegurarte de que todos los subdominios necesarios estén cubiertos por un único certificado.
",
- p4: "
Comprueba los SAN: Los navegadores modernos dependen de la extensión de nombre alternativo del sujeto (SAN) en lugar del nombre común (CN) para la verificación del nombre de host. Asegúrate siempre de que tu dominio aparezca en los SAN.
Verifica la cadena: Si un certificado es válido pero sigue sin ser de confianza, es posible que falten certificados intermedios. Consulta el \"Issuer\" para identificar qué CA intermedia necesitas incluir en tu servidor.
Huellas digitales para pinning: Usa la huella digital SHA-256 que proporciona esta herramienta si necesitas implementar certificate pinning en aplicaciones móviles o APIs de alta seguridad.
",
- },
cheatsheet: {
title: "Referencia de certificados X.509",
h0: "Campos del certificado",
@@ -1424,16 +1282,6 @@ export default {
text1: "Copiar JSON",
text2: "Copiar XML",
},
- edu: {
- heading1: "¿Qué es SAML?",
- p1: "Security Assertion Markup Language (SAML) es un estándar abierto basado en XML para intercambiar datos de autenticación y autorización entre partes, en particular entre un proveedor de identidad (IdP) y un proveedor de servicios (SP). SAML es la columna vertebral de muchas soluciones empresariales de inicio de sesión único (SSO), que permiten a los usuarios acceder a múltiples aplicaciones con un único conjunto de credenciales. La versión más común es SAML 2.0, que usa tokens de seguridad que contienen aserciones para transmitir información sobre un principal entre el IdP y el SP.",
- heading2: "Cómo usar esta herramienta",
- p2: "Pega el SAMLResponse codificado en Base64 o el XML sin procesar en el campo de entrada. Activa Attempt to inflate si estás decodificando un payload de un binding Redirect. Haz clic en Decodificar respuesta para analizar el mensaje. Consulta el resumen rápido para ver el emisor, el sujeto y el estado de validez. Ve los atributos de usuario decodificados en la tabla de atributos. Usa las pestañas para ver el XML formateado, los detalles de la aserción o una representación JSON de los claims.",
- heading3: "Casos de uso comunes",
- p3: "Resolución de problemas de SSO diagnosticando por qué un usuario no puede iniciar sesión, comprobando aserciones expiradas o discrepancias de audiencia. Pruebas de integración para verificar que tu proveedor de identidad está enviando los atributos correctos. Auditoría de seguridad para inspeccionar el XML sin procesar y asegurarte de que las aserciones estén firmadas correctamente. Desarrollo para ver rápidamente el contenido de un mensaje SAML durante la integración del proveedor de servicios.",
- heading4: "Consejos profesionales",
- p4: "Los mensajes SAML enviados mediante HTTP-Redirect suelen estar deflacionados (comprimidos) antes de codificarse en Base64; si tu decodificación falla, prueba a activar la casilla Attempt to inflate. Asegúrate de que AudienceRestriction coincida con el Entity ID de tu SP. Si una respuesta se marca como no válida, comprueba los tiempos NotBefore y NotOnOrAfter en busca de desfase de reloj entre el IdP y el SP.",
- },
cheatsheet: {
title: "Referencia rápida de SAML",
h0: "Flujo SAML",
@@ -1476,16 +1324,6 @@ export default {
alert1: "Ingrese una cadena User-Agent",
tpl2: "Salida de análisis sin procesar",
},
- edu: {
- heading1: "¿Qué es un User-Agent?",
- p1: "Un User-Agent es una cadena de texto que tu navegador envía a cada sitio web que visitas. Identifica la versión del navegador, el sistema operativo y el tipo de dispositivo, lo que permite a los servidores optimizar el contenido para tu entorno específico.",
- heading2: "Cómo usar esta herramienta",
- p2: "Pega una cadena de User-Agent en el cuadro de entrada o haz clic en Usar esta para analizar la cadena de tu navegador actual. La herramienta desglosará el motor del navegador, la versión del sistema operativo y las características del dispositivo.",
- heading3: "Casos de uso comunes",
- p3: "Depurar problemas de compatibilidad de sitios web, analizar los logs del servidor web para identificar tráfico de bots, verificar la suplantación de navegador y comprender la distribución de dispositivos en tu audiencia.",
- heading4: "Consejos profesionales",
- p4: "Muchos navegadores modernos congelan o simplifican sus cadenas de User-Agent para evitar el fingerprinting. Busca siempre los tokens Version o Chrome para obtener la información de versión más precisa.",
- },
},
"qr-code": {
name: "Generador de Códigos QR",
@@ -1524,16 +1362,6 @@ export default {
alert3: "¡Copiado!",
tpl4: "Suba una imagen para decodificar",
},
- edu: {
- heading1: "¿Qué son los códigos QR?",
- p1: "Los códigos QR (Quick Response) son códigos de barras bidimensionales que pueden almacenar varios tipos de datos, siendo las URL las más comunes. Se pueden escanear con smartphones y lectores especializados para acceder rápidamente a información o activar acciones.",
- heading2: "Cómo usar esta herramienta",
- p2: "Introduce el texto o la URL que quieres codificar. Ajusta el tamaño y el nivel de corrección de errores si es necesario. El código QR se actualiza en tiempo real y se puede descargar como imagen para uso impreso o digital.",
- heading3: "Casos de uso comunes",
- p3: "Compartir enlaces de sitios web, proporcionar credenciales de Wi-Fi, tarjetas de presentación digitales (vCards), entradas para eventos, y flujos de pagos móviles o autenticación.",
- heading4: "Consejos profesionales",
- p4: "Los niveles de corrección de errores más altos (H o Q) permiten que el código QR siga siendo escaneable incluso si está parcialmente dañado u oculto, lo cual es ideal para señalización física o branding.",
- },
},
"timestamp-converter": {
name: "Conversor de Marcas de Tiempo",
@@ -1564,16 +1392,6 @@ export default {
text0: "Marca de tiempo inválida",
tpl1: "Unix (milisegundos)",
},
- edu: {
- heading1: "¿Qué es el tiempo Unix?",
- p1: "El tiempo Unix (también conocido como tiempo Epoch, tiempo POSIX o marca de tiempo Unix) es un sistema para describir un punto en el tiempo. Es el número de segundos transcurridos desde el Epoch Unix, menos los segundos intercalares; el Epoch Unix es el 00:00:00 UTC del 1 de enero de 1970. Se usa ampliamente en sistemas operativos y formatos de archivo porque es un único entero, lo que facilita su almacenamiento y manipulación por los ordenadores. Este estándar permite que diferentes sistemas comuniquen el tiempo con precisión independientemente de su configuración de zona horaria local.",
- heading2: "Cómo usar esta herramienta",
- p2: "Para convertir Unix a Humano: Ingresa la marca de tiempo en el campo Marca de tiempo Unix y selecciona si está en segundos o milisegundos. Para convertir Humano a Unix: Selecciona la fecha y hora usando los selectores, luego elige tu zona horaria deseada. Usa el botón Ahora para obtener rápidamente la marca de tiempo actual. Ve los resultados en tiempo real, incluyendo ISO 8601, Hora local, UTC y tiempo relativo. Haz clic en el botón Copiar junto a cualquier resultado para guardarlo en tu portapapeles.",
- heading3: "Casos de uso comunes",
- p3: "Análisis de registros para convertir marcas de tiempo crípticas encontradas en registros de servidor o entradas de bases de datos en fechas legibles para depuración. Desarrollo de API para verificar que tu backend envía los valores de época correctos. Migración de datos para garantizar que los datos basados en tiempo permanezcan consistentes al moverse entre sistemas. Programación para calcular marcas de tiempo futuras o pasadas para trabajos cron, fechas de vencimiento o desencadenadores de eventos.",
- heading4: "Consejos profesionales",
- p4: "Al trabajar con JavaScript, recuerda que Date.now() devuelve milisegundos, mientras que las marcas de tiempo Unix estándar están en segundos — divide por 1000 para convertir. Siempre usa el formato ISO 8601 para el intercambio de datos entre sistemas para garantizar la máxima compatibilidad. Ten en cuenta el problema del año 2038 donde los enteros de 32 bits con signo se desbordará; los sistemas modernos usan enteros de 64 bits que resuelven esto para el futuro previsible.",
- },
},
"color-converter": {
name: "Conversor de Colores",
@@ -1589,16 +1407,6 @@ export default {
badge7: "Solo cliente",
badge8: "Privacidad primero",
},
- edu: {
- heading1: "Modelos de color explicados (HEX/RGB/HSL)",
- heading2: "Cómo usar esta herramienta",
- heading3: "Casos de uso comunes",
- heading4: "Consejos profesionales",
- p1: "
Los modelos de color son sistemas matemáticos para representar colores. HEX (Hexadecimal) es un código de 6 dígitos usado en HTML y CSS, que representa los componentes Rojo, Verde y Azul. RGB (Rojo, Verde, Azul) usa valores decimales de 0 a 255 para cada canal, a menudo usado en imagen digital.
HSL (Tono, Saturación, Luminosidad) es más intuitivo para los humanos, ya que describe el color en términos de su pigmento base (Tono), intensidad (Saturación) y brillo (Luminosidad). Entender estos modelos ayuda a elegir el formato correcto para tus necesidades de diseño y desarrollo, asegurando consistencia en diferentes plataformas y dispositivos.
",
- p2: "
Usa el selector de color visual para seleccionar un color arrastrando el cursor en el cuadrado de saturación/brillo y el deslizador de tono.
Alternativamente, ingresa un valor específico en el campo \"Entrada manual\" (soporta formatos #hex, rgb o hsl).
Observa el cuadro \"Vista previa\" para ver el color seleccionado en tiempo real.
Ve los valores convertidos en las tarjetas HEX, RGB, HSL y HSV a continuación.
Haz clic en el icono \"Copiar\" en cualquier tarjeta para guardar ese formato específico en tu portapapeles.
",
- p3: "
Diseño web: Convierte colores de herramientas de diseño (a menudo RGB/HSL) a códigos HEX para usar en hojas de estilo CSS.
Consistencia de marca: Asegúrate de que los colores de tu marca estén representados con precisión en diferentes formatos digitales y medios.
Desarrollo de UI: Genera rápidamente variaciones más claras u oscuras de un color base ajustando el valor de Luminosidad en HSL.
Pruebas de accesibilidad: Usa la vista previa para verificar si los colores elegidos proporcionan suficiente contraste para texto legible y elementos de UI.
",
- p4: "
Usa HSL al diseñar componentes de UI como botones, ya que facilita la creación de estados hover simplemente ajustando el valor de luminosidad.
Al trabajar con transparencia en CSS, prefiere rgba() o hsla() para mejor legibilidad y control sobre el canal alfa.
Siempre verifica las relaciones de contraste de color para asegurarte de que tus diseños sean accesibles para usuarios con discapacidades visuales.
",
- },
},
"unit-converter": {
name: "Conversor de Unidades",
@@ -1616,16 +1424,6 @@ export default {
text0: "Seleccione unidades para ver la fórmula de conversión",
text1: "Ingrese un número válido",
},
- edu: {
- heading1: "Visión general de los sistemas de medida",
- p1: "Los sistemas de medida son colecciones de unidades de medida y reglas que las relacionan entre sí. Los dos sistemas más comunes son el Sistema Métrico (Sistema Internacional de Unidades o SI) y el Sistema Imperial. El sistema métrico está basado en potencias de diez, lo que lo hace muy lógico y fácil de escalar. El sistema imperial, utilizado principalmente en los Estados Unidos, usa unidades como pulgadas, pies y libras que tienen orígenes históricos y factores de conversión menos uniformes. Entender las diferencias entre estos sistemas es esencial para la ciencia, la ingeniería, el comercio internacional y tareas cotidianas como cocinar o viajar.",
- heading2: "Cómo usar esta herramienta",
- p2: "Selecciona la categoría de medida (ej., Longitud, Peso, Temperatura) de la cuadrícula en la parte superior. Elige la unidad desde la que deseas convertir en el menú desplegable Desde. Ingresa el valor que deseas convertir en el campo de entrada. Selecciona la unidad destino en el menú desplegable Hacia. El valor convertido aparecerá instantáneamente junto con la fórmula matemática utilizada para la conversión.",
- heading3: "Casos de uso comunes",
- p3: "Viajes para convertir distancias de kilómetros a millas o temperaturas de Celsius a Fahrenheit. Cocina para traducir recetas entre medidas métricas (gramos/mililitros) e imperiales (onzas/tazas). Ingeniería y ciencia para conversiones precisas entre diferentes unidades de presión, energía o velocidad. Almacenamiento digital para entender la diferencia entre Megabytes, Gigabytes y Terabytes.",
- heading4: "Consejos profesionales",
- p4: "Usa el botón Intercambiar para invertir rápidamente la dirección de conversión entre tus unidades seleccionadas. Siempre verifica el tipo de unidad específico, especialmente para volumen y peso, ya que los nombres pueden ser similares en diferentes sistemas como galones de EE.UU. vs. del Reino Unido. Al realizar múltiples conversiones en secuencia, conserva la mayor cantidad posible de decimales hasta el resultado final para evitar errores de redondeo acumulados.",
- },
},
"yaml-toml-converter": {
name: "Conversor YAML/TOML",
@@ -1659,16 +1457,6 @@ export default {
text6: "⚠️ Conversión TOML fallida:",
tpl7: "Esperando conversión.",
},
- edu: {
- heading1: "YAML frente a TOML frente a JSON",
- p1: "JSON es el formato más utilizado para el intercambio de datos gracias a su simplicidad y su soporte nativo en JavaScript. YAML (YAML Ain't Markup Language) es un estándar de serialización de datos legible para humanos que usa la sangría para representar la estructura, lo que lo hace popular para archivos de configuración complejos. TOML (Tom's Obvious, Minimal Language) está diseñado para ser fácil de leer y escribir gracias a su semántica obvia, y suele usarse para la configuración de proyectos. Mientras que JSON es estricto y compacto, YAML y TOML priorizan la legibilidad humana y la facilidad de edición manual.",
- heading2: "Cómo usar esta herramienta",
- p2: "Pega tus datos de configuración (JSON, YAML o TOML) en el área de texto de origen de la izquierda. La herramienta detectará automáticamente el formato de origen, o puedes seleccionarlo manualmente en el menú desplegable. Haz clic en Solo validar para comprobar errores de sintaxis sin realizar una conversión. Haz clic en uno de los botones de conversión (a JSON, a YAML, a TOML) para traducir tus datos a ese formato. Consulta los resultados en los paneles de salida de la derecha y haz clic en Copiar para guardarlos en tu portapapeles.",
- heading3: "Casos de uso comunes",
- p3: "Infraestructura como código para convertir entre JSON y YAML al trabajar con manifiestos de Kubernetes, archivos Docker Compose o plantillas de AWS CloudFormation. Configuración de proyectos para migrar ajustes entre package.json (JSON) y pyproject.toml o Cargo.toml (TOML). Prototipado de API para visualizar rápidamente cómo se ve una estructura de datos compleja en distintos formatos. Migración heredada para traducir archivos de configuración antiguos a formatos modernos garantizando la integridad de los datos.",
- heading4: "Consejos profesionales",
- p4: "Usa YAML para pipelines de CI/CD donde la legibilidad de estructuras anidadas complejas es esencial para el mantenimiento. Prefiere TOML para archivos de configuración a nivel de aplicación, para ofrecer una interfaz clara a los usuarios finales que puedan necesitar editarlos manualmente. Al convertir de YAML a JSON, ten en cuenta los problemas de coerción de tipos de YAML (donde NO puede interpretarse como false) y asegúrate de que tus tipos de datos se conserven correctamente.",
- },
cheatsheet: {
title: "Comparación de formatos",
h0: "Diferencias de sintaxis",
@@ -1719,16 +1507,6 @@ export default {
text1: "Copiar",
text2: "¡Copiado!",
},
- edu: {
- heading1: "¿Qué es htpasswd?",
- p1: "
El archivo htpasswd es una base de datos de archivo plano que se usa para almacenar nombres de usuario y contraseñas con hash para la autenticación básica en servidores web Apache y Nginx. Es una forma simple pero eficaz de proteger directorios específicos o paneles de administración de un sitio web sin necesitar un sistema de autenticación completo respaldado por una base de datos.
Cada línea de un archivo htpasswd representa un único usuario y sigue el formato username:hashed_password.
",
- heading2: "Cómo usar esta herramienta",
- p2: "
Introduce el nombre de usuario: Escribe el nombre de usuario que quieres usar para la autenticación.
Proporciona la contraseña: Introduce una contraseña o haz clic en Generar segura para crear una.
Selecciona el algoritmo: Elige Bcrypt (-B) para seguridad moderna o Apache MD5 (-m) para compatibilidad heredada.
Genera: Haz clic en Generar entrada para crear la cadena con hash.
Copia o descarga: Copia la línea resultante a tu portapapeles o descárgala como archivo para subirla a tu servidor.
",
- heading3: "Casos de uso comunes",
- p3: "
Paneles de administración: Proteger áreas sensibles como /admin o /wp-admin con una capa adicional de seguridad a nivel de servidor.
Sitios de staging: Restringir el acceso a entornos de desarrollo o staging para que no sean indexados por buscadores ni vistos por el público.
Repositorios privados: Proteger repositorios locales de Git o SVN servidos por HTTP.
API Gateways: Implementar autenticación simple para microservicios internos o APIs heredadas.
",
- heading4: "Consejos profesionales",
- p4: "
Usa siempre Bcrypt: Bcrypt es intencionadamente lento y usa un factor de costo para resistir ataques de fuerza bruta. Es considerablemente más seguro que las opciones heredadas MD5 o SHA1.
Protege el archivo: Nombra tu archivo .htpasswd (con un punto inicial) y guárdalo fuera del directorio raíz de tu sitio web para evitar que se pueda descargar.
HTTPS es obligatorio: La autenticación básica envía las credenciales en un formato fácilmente reversible. Nunca la uses sobre HTTP sin cifrar; asegúrate siempre de que tu sitio se sirva mediante HTTPS.
",
- },
},
"mock-data-generator": {
name: "Generador de Datos de Prueba",
@@ -1762,16 +1540,6 @@ export default {
text1: "Copiar",
text2: "No hay filas para previsualizar.",
},
- edu: {
- heading1: "¿Qué son los datos simulados?",
- p1: "
Los datos simulados son información sintética que imita los datos del mundo real sin contener información sensible o de identificación personal (PII). Son esenciales para desarrolladores y evaluadores que necesitan conjuntos de datos realistas para construir y validar aplicaciones sin arriesgar violaciones de datos o infringir regulaciones de privacidad como GDPR o CCPA. Al usar datos simulados, puedes simular varios escenarios, desde perfiles de usuario estándar hasta casos extremos, asegurando que tu software maneje todos los tipos de entrada correctamente.
",
- heading2: "Estrategias de prueba",
- p2: "
Las pruebas efectivas requieren conjuntos de datos diversos. Usa datos simulados para poblar tus bases de datos de desarrollo, realizar pruebas de carga con miles de registros o verificar diseños de UI con longitudes de cadenas variables. Es particularmente útil para pruebas de integración donde necesitas respuestas predecibles de APIs externas. Al generar datos localmente, puedes crear entornos de prueba consistentes que son fáciles de restablecer y reproducir, lo que lleva a ciclos de desarrollo más confiables y rápidos.
",
- heading3: "Privacidad de datos en simulaciones",
- p3: "
La privacidad es una prioridad máxima en el desarrollo de software moderno. Usar datos de producción reales en entornos de desarrollo o staging es un riesgo de seguridad importante. Los generadores de datos simulados resuelven esto produciendo datos falsos pero estructuralmente correctos. Nuestra herramienta se ejecuta completamente en tu navegador, lo que significa que tu configuración y los datos generados nunca abandonan tu dispositivo. Este enfoque de Privacidad primero garantiza que incluso el proceso de crear datos simulados sea seguro y cumpla con los estándares de seguridad más estrictos.
",
- heading4: "Consejos profesionales",
- p4: "
Consistencia: Al generar múltiples conjuntos de datos relacionados, usa semillas o patrones fijos para mantener la integridad referencial entre tablas.
Casos extremos: Incluye cadenas vacías, nombres muy largos y caracteres especiales para probar la robustez de tu aplicación.
Cambio de formato: Usa la exportación SQL para la población rápida de bases de datos y CSV para análisis en hojas de cálculo o importaciones masivas.
Automatización: Los patrones que usa esta herramienta se pueden integrar en tus pipelines de CI/CD automatizados para pruebas continuas.
",
- },
cheatsheet: {
title: "Tipos de campos de datos simulados",
h0: "Tipos disponibles",
@@ -1870,16 +1638,6 @@ export default {
js: {
tpl0: "aLtErNaTiNg:",
},
- edu: {
- heading1: "Convenciones de nomenclatura explicadas (camelCase/snake_case/etc.)",
- heading2: "Cómo usar esta herramienta",
- heading3: "Casos de uso comunes",
- heading4: "Consejos profesionales",
- p1: "
Las convenciones de nomenclatura son conjuntos de reglas para elegir la secuencia de caracteres que se usará en los identificadores que designan variables, tipos, funciones y otras entidades en el código fuente y la documentación. camelCase (por ejemplo, myVariable) comienza con una letra minúscula y pone en mayúscula la primera letra de cada palabra siguiente. snake_case (por ejemplo, my_variable) usa guiones bajos para separar las palabras.
PascalCase (por ejemplo, MyVariable) pone en mayúscula la primera letra de cada palabra, mientras que kebab-case (por ejemplo, my-variable) usa guiones para separar las palabras. Estas convenciones no son solo cuestión de estética; son fundamentales para la legibilidad del código, su mantenibilidad y el cumplimiento de los estándares idiomáticos de los distintos lenguajes de programación y frameworks.
",
- p2: "
Escribe o pega tu texto en el área \"Texto de entrada\" en la parte superior de la página.
La herramienta convertirá automáticamente tu entrada a más de una docena de estilos de mayúsculas/minúsculas diferentes en tiempo real.
Recorre la cuadrícula \"Resultados de la conversión\" para encontrar el estilo específico que necesitas.
Haz clic en el icono \"Copiar\" junto a cualquier resultado para guardarlo en tu portapapeles.
Usa el botón \"Limpiar\" para eliminar toda la entrada y empezar una nueva conversión.
",
- p3: "
Refactorización de código: Convierte rápidamente nombres de variables al migrar código entre lenguajes con distintos estándares (por ejemplo, camelCase de Java a snake_case de Python).
Desarrollo web: Transforma texto a kebab-case para nombres de clases CSS o slugs de URL, garantizando identificadores válidos y compatibles con SEO.
Diseño de bases de datos: Convierte identificadores camelCase a nivel de aplicación a snake_case para nombres de tablas y columnas de bases de datos.
Creación de contenido: Usa Title Case o Sentence case para dar formato rápidamente a encabezados y texto de artículos o documentación.
",
- p4: "
Sé coherente dentro de tu proyecto; aunque prefieras un estilo, sigue siempre la convención existente en la base de código en la que estás trabajando.
Usa nombres descriptivos que transmitan significado, en lugar de limitarte a seguir la convención de mayúsculas/minúsculas (por ejemplo, isUserLoggedIn es mejor que status).
Al trabajar con API, prepárate para convertir entre estilos, ya que los sistemas backend suelen usar snake_case mientras que los frontends prefieren camelCase.
",
- },
},
"code-minifier": {
name: "Minificador de Código",
@@ -1913,16 +1671,6 @@ export default {
text2: "📋 Copiar",
tpl3: "Todo el procesamiento ocurre en su navegador. Su código nunca sale de su dispositivo.",
},
- edu: {
- heading1: "¿Qué es la minificación?",
- heading2: "Cómo usar esta herramienta",
- heading3: "Casos de uso comunes",
- heading4: "Consejos profesionales",
- p1: "
La minificación es el proceso de eliminar todos los caracteres innecesarios del código fuente sin cambiar su funcionalidad. Esto incluye eliminar espacios en blanco, saltos de línea, comentarios y, a veces, acortar los nombres de las variables. El objetivo es reducir el tamaño del archivo de código, lo que a su vez reduce la cantidad de datos que hay que transferir por la red.
Esto se traduce en tiempos de carga de página más rápidos y un mejor rendimiento para las aplicaciones web. Aunque la minificación es esencial para los entornos de producción, hace que el código sea prácticamente imposible de leer y depurar para los humanos. Por eso, normalmente se realiza como último paso del proceso de build antes de desplegar en un servidor en producción.
",
- p2: "
Selecciona el lenguaje de programación (JavaScript, CSS, HTML o JSON) en las pestañas de arriba.
Pega tu código fuente en el área de texto \"Código de entrada\" a la izquierda.
Haz clic en el botón \"Minificar código\" para reducir el tamaño del archivo para uso en producción.
Como alternativa, haz clic en \"Formatear código\" para añadir sangría y formato y mejorar la legibilidad.
Consulta los resultados en el área \"Código de salida\" y haz clic en \"Copiar\" o \"Descargar\" para guardar tu código optimizado.
",
- p3: "
Despliegue en producción: Minifica tus archivos JS y CSS antes de subirlos a tu servidor web para mejorar la velocidad del sitio y el SEO.
Plantillas de correo: Minifica el código HTML de los correos para mantenerlo por debajo de los límites de tamaño de los distintos clientes de correo y que se cargue rápido para los destinatarios.
Respuestas de API: Minifica los datos JSON antes de enviarlos desde tu servidor para reducir el uso de ancho de banda y los costos de salida de datos.
Auditoría de código: Usa el formateador para dar formato a código desordenado o minificado que hayas encontrado en internet y entender cómo funciona.
",
- p4: "
Conserva siempre tu código fuente original sin minificar para el desarrollo y usa la versión minificada solo para el despliegue en producción.
Usa Source Maps para conectar el código de producción minificado con el código de desarrollo legible, permitiendo una depuración eficiente en el navegador.
Combina la minificación con la compresión Gzip o Brotli en tu servidor para lograr la máxima reducción posible en el tamaño de archivo y el tiempo de transferencia.
",
- },
},
"image-converter": {
name: "Conversor de Imágenes",
@@ -1969,16 +1717,6 @@ export default {
alert2: "Error al leer archivo.",
tpl3: "Procesamiento del lado del cliente con Canvas API - sin subidas, resultados instantáneos",
},
- edu: {
- heading1: "Comparación de formatos de imagen (PNG/JPEG/WebP)",
- p1: "
Elegir el formato de imagen adecuado es crucial para el rendimiento web y la calidad visual. JPEG es el mejor para fotografías e imágenes complejas con muchos colores, ya que usa compresión con pérdida para lograr tamaños de archivo pequeños. PNG es ideal para imágenes que requieren transparencia o tienen bordes definidos y colores sólidos (como logotipos e iconos), ya que usa compresión sin pérdida.
WebP es un formato moderno que ofrece una compresión con y sin pérdida superior, lo que suele resultar en tamaños de archivo significativamente más pequeños que JPEG o PNG manteniendo una alta calidad.
",
- heading2: "Cómo usar esta herramienta",
- p2: "
Sube tu imagen arrastrándola a la zona Subir imagen o haciendo clic para explorar tus archivos.
Selecciona el formato de salida que quieras (PNG, JPG o WebP) en las opciones de Formato de conversión.
Si has seleccionado un formato con pérdida como JPG o WebP, usa el deslizador de calidad para equilibrar el tamaño de archivo y la fidelidad visual.
Opcionalmente, usa los ajustes de Redimensionar imagen para escalar tu imagen por porcentaje o dimensiones específicas.
Haz clic en Convertir y redimensionar imagen y luego en Descargar para guardar tu recurso optimizado.
",
- heading3: "Casos de uso comunes",
- p3: "
Optimización web: Convierte imágenes PNG o JPEG grandes a WebP para mejorar la velocidad de carga de tu sitio web y los Core Web Vitals.
Redes sociales: Redimensiona y comprime fotos para cumplir los requisitos de subida específicos de plataformas como Instagram, Twitter o LinkedIn.
Email marketing: Reduce el tamaño de archivo de las imágenes en tus campañas de correo para que se carguen rápido para todos los destinatarios.
Desarrollo de apps: Genera múltiples tamaños del mismo icono o recurso para distintas densidades de pantalla usando las funciones de redimensionado.
",
- heading4: "Consejos profesionales",
- p4: "
Usa WebP siempre que sea posible en proyectos web, ya que es compatible con todos los navegadores modernos y ofrece la mejor relación compresión-calidad.
Al convertir a JPEG, un ajuste de calidad del 70-80% suele ofrecer el mejor equilibrio entre tamaño de archivo y calidad visual para la mayoría de usos web.
Conserva siempre tus imágenes originales en alta resolución y convierte o redimensiona solo copias para casos de uso específicos, para evitar perder calidad con el tiempo por compresiones repetidas.
",
- },
},
"css-gradient": {
name: "Generador de Degradados CSS",
@@ -2018,16 +1756,6 @@ export default {
alert2: "Error al copiar CSS al portapapeles",
tpl3: "Pantallas de carga y superposiciones",
},
- edu: {
- heading1: "¿Qué son los degradados CSS?",
- heading2: "Degradados lineales frente a radiales frente a cónicos",
- heading3: "Compatibilidad con navegadores y rendimiento",
- heading4: "Consejos profesionales para mejores degradados",
- p1: "
Los degradados CSS son una característica potente que te permite mostrar transiciones suaves entre dos o más colores especificados. A diferencia de las imágenes de fondo tradicionales, los degradados los genera el navegador, lo que significa que son infinitamente escalables, consumen menos ancho de banda y se pueden manipular fácilmente con código. Se usan habitualmente en fondos, botones y elementos decorativos para añadir profundidad e interés visual a los diseños web.
",
- p2: "
Hay tres tipos principales de degradados CSS:
Degradados lineales: los colores transicionan a lo largo de una línea recta. Puedes controlar la dirección usando ángulos (por ejemplo, 45deg) o palabras clave (por ejemplo, to right).
Degradados radiales: los colores irradian hacia afuera desde un punto central (el \"origen\"). Puedes especificar la forma (círculo o elipse) y la posición del centro.
Degradados cónicos: los colores transicionan alrededor de un punto central, similar a un gráfico circular o una rueda de color. Aunque son menos comunes, son ideales para crear patrones únicos y elementos de interfaz.
",
- p3: "
Los degradados CSS modernos son ampliamente compatibles con todos los navegadores principales, incluidos Chrome, Firefox, Safari y Edge. Como el motor del navegador los renderiza matemáticamente, tienen un rendimiento excelente en comparación con las imágenes de alta resolución. Sin embargo, para degradados muy complejos con docenas de puntos de color, siempre es buena práctica probar el rendimiento en dispositivos de gama baja. Para navegadores más antiguos (como IE9 e inferiores), se recomienda ofrecer un color sólido de reserva.
",
- p4: "
Evita las \"zonas muertas grises\": al transicionar entre dos colores muy distintos, el punto medio a veces puede verse turbio o gris. Añadir un punto de color intermedio vibrante puede mantener el degradado fresco.
Usa transiciones sutiles: a menudo, los mejores degradados son los que apenas se notan. Usar colores cercanos entre sí en la rueda de color crea un aspecto sofisticado y profesional.
Superposición: puedes apilar múltiples degradados uno encima de otro usando la propiedad background-image, lo que permite efectos increíblemente complejos y artísticos.
Accesibilidad: asegúrate de que cualquier texto colocado sobre un degradado tenga suficiente contraste. Usa herramientas para comprobar el cumplimiento de WCAG en todas las combinaciones de color.
",
- },
},
"curl-studio": {
name: "Estudio cURL",
@@ -2096,16 +1824,6 @@ export default {
text2: "¡Copiado!",
tpl3: "Los registros aparecerán aquí después del enmascaramiento...",
},
- edu: {
- heading1: "¿Qué es la PII?",
- p1: "
La información de identificación personal (PII) es cualquier dato que se pueda usar para identificar a una persona concreta. Esto incluye identificadores directos como nombres, direcciones de correo electrónico y números de teléfono, así como identificadores indirectos como direcciones IP, ubicaciones físicas y números de tarjetas de crédito. En el contexto de los logs de servidor, la PII suele aparecer en parámetros de solicitud, encabezados o mensajes de error.
Proteger la PII es una parte fundamental de la seguridad de datos moderna y es un requisito de diversos marcos legales en todo el mundo.
",
- heading2: "Requisitos de cumplimiento (RGPD/CCPA)",
- p2: "
Normativas como el Reglamento General de Protección de Datos (RGPD) en Europa y la Ley de Privacidad del Consumidor de California (CCPA) en Estados Unidos imponen reglas estrictas sobre cómo se manejan los datos personales. Estas leyes exigen a las organizaciones implementar la privacidad desde el diseño y minimizar la recopilación y el almacenamiento de datos personales.
Compartir logs sin procesar que contengan PII con equipos de soporte externos o desarrolladores puede provocar infracciones de cumplimiento. Enmascarar o redactar estos datos antes de que salgan de tu entorno seguro es un paso clave para mantener el cumplimiento normativo.
",
- heading3: "Estrategias de enmascarado",
- p3: "
Hay varias formas de gestionar los datos sensibles en los logs:
Redacción: reemplazar el valor sensible con un marcador de posición genérico como [EMAIL_REDACTED]. Este es el enfoque más común para compartir logs.
Anonimización: transformar los datos de forma irreversible para que la persona ya no pueda identificarse.
Seudonimización: reemplazar identificadores con un alias coherente (como un hash) para poder seguir correlacionando eventos sin conocer la identidad del usuario.
Nuestra herramienta se centra en la redacción, usando coincidencia de patrones para encontrar y reemplazar al instante los formatos comunes de PII.
",
- heading4: "Consejos profesionales",
- p4: "
Usa el campo Palabras clave personalizadas para redactar identificadores internos como claves de API, tokens de sesión o nombres de proyectos propietarios que no cubren los patrones estándar.
Realiza siempre el enmascarado localmente (como hace esta herramienta) para asegurarte de que los datos sensibles nunca toquen un servidor de terceros durante el proceso de limpieza.
Si estás correlacionando logs entre varios sistemas, considera usar una sal (salt) coherente con una herramienta de hash en lugar de una simple redacción para mantener la trazabilidad.
Audita regularmente el código de tu aplicación para evitar que la PII se registre desde el principio; registrar en el origen es la mejor defensa.
",
- },
},
"mermaid-studio": {
name: "Estudio Mermaid",
@@ -2306,16 +2024,6 @@ export default {
text51: "Aún no se han extraído URLs.",
text52: "Aún no hay datos de enrutamiento.",
},
- edu: {
- heading1: "Autenticación de correo electrónico explicada",
- heading2: "SPF/DKIM/DMARC",
- heading3: "Detección de phishing",
- heading4: "Consejos profesionales",
- p1: "
La autenticación de correo electrónico es un conjunto de técnicas utilizadas para proporcionar información verificable sobre el origen de un mensaje de correo. Al validar la identidad del remitente, estos protocolos ayudan a los servidores de correo a distinguir entre mensajes legítimos y otros suplantados o fraudulentos (como el phishing). Los tres pilares de la autenticación de correo moderna son SPF, DKIM y DMARC.
Cuando se recibe un correo, el servidor receptor realiza estas comprobaciones y registra los resultados en los encabezados del correo, que esta herramienta analiza por ti.
",
- p2: "
SPF (Sender Policy Framework): un mecanismo basado en DNS que lista las direcciones IP y los dominios autorizados para enviar correo en nombre de tu dominio.
DKIM (DomainKeys Identified Mail): añade una firma digital al correo, lo que permite al receptor verificar que el mensaje fue efectivamente enviado por el propietario del dominio y que no ha sido manipulado en tránsito.
DMARC (Domain-based Message Authentication, Reporting, and Conformance): une SPF y DKIM. Indica al receptor qué hacer si falla la autenticación (por ejemplo, \"none\", \"quarantine\" o \"reject\") y ofrece a los receptores una forma de informar de vuelta al remitente.
",
- p3: "
Los correos de phishing suelen usar la \"suplantación\" (spoofing) para parecer que provienen de una fuente de confianza. Nuestro analizador busca señales de alerta comunes, como una discrepancia entre la dirección \"From\" (lo que ve el usuario) y el \"Return-Path\" (de dónde vino realmente el correo). También extraemos y analizamos las URL del cuerpo del correo para identificar enlaces sospechosos, como los que usan Punycode (dominios similares) o direcciones IP en lugar de nombres de host.
Al revisar la sección \"Findings\", puedes identificar rápidamente estas señales y determinar si es seguro interactuar con un correo.
",
- p4: "
Comprueba siempre primero el encabezado \"Authentication-Results\"; proporciona el resultado definitivo de las comprobaciones de seguridad realizadas por tu proveedor de correo.
Usa la opción \"Mask PII\" al compartir informes con otras personas para proteger las direcciones de correo e información de IP sensibles.
Presta mucha atención al encabezado \"Reply-To\"; si difiere de la dirección \"From\", puede ser una señal de un ataque de compromiso de correo empresarial (BEC).
Revisa los \"Routing Hops\" para ver la ruta que siguió el correo; una ruta inusualmente larga o compleja a través de servidores desconocidos puede ser una señal de abuso de relay.
",
- },
cheatsheet: {
title: "Referencia rápida de autenticación de correo",
h0: "Qué significan estas comprobaciones",
@@ -2491,16 +2199,6 @@ export default {
text9: "Primero pega SQL.",
text10: "✓ Copiado",
},
- edu: {
- heading1: "¿Por qué formatear SQL?",
- p1: "El SQL puede volverse complejo y difícil de leer rápidamente, especialmente cuando se trata de múltiples joins, subconsultas y condiciones anidadas. Formatear SQL implica añadir sangría coherente, saltos de línea y mayúsculas en las palabras clave. Esto hace que la lógica de la consulta sea mucho más fácil de seguir, algo esencial para la depuración, las revisiones de código y el mantenimiento de esquemas de bases de datos grandes con el tiempo. Una consulta bien formateada también es menos propensa a errores lógicos durante las ediciones manuales.",
- heading2: "Cómo usar esta herramienta",
- p2: "Pega tu consulta SQL sin procesar en el editor SQL de entrada a la izquierda. Selecciona el dialecto de tu base de datos (Postgres o MySQL) y el estilo de mayúsculas preferido para las palabras clave (UPPER o lower). Haz clic en el botón Formatear para embellecer tu consulta con la sangría y el espaciado adecuados. Usa el botón Validar para comprobar problemas estructurales comunes, como comillas sin cerrar o paréntesis desbalanceados. Haz clic en Copiar para guardar el SQL formateado en tu portapapeles o en Limpiar para empezar de nuevo.",
- heading3: "Casos de uso comunes",
- p3: "Revisiones de código para formatear SQL desordenado antes de enviar un pull request. Depuración para limpiar consultas generadas por ORM y entender exactamente qué se está ejecutando contra tu base de datos. Documentación para crear ejemplos claros y legibles para guías técnicas, wikis o archivos README. Limpieza de código heredado para refactorizar rápidamente scripts antiguos sin formato a un estilo moderno y legible.",
- heading4: "Consejos profesionales",
- p4: "Usa expresiones de tabla común (CTE) con la cláusula WITH para dividir consultas complejas en partes más pequeñas y manejables. Usa siempre alias descriptivos para tablas y columnas para dejar claro el propósito de tu consulta. Usa el botón Minificar si necesitas comprimir tu SQL en una sola línea para usarlo en archivos de configuración o herramientas de línea de comandos.",
- },
cheatsheet: {
title: "Consejos de formateo de SQL",
h0: "Mejoras rápidas",
@@ -2569,16 +2267,6 @@ export default {
text15: "Nota: los valores están enmascarados por seguridad. El diff es heurístico y no incluye comentarios/orden.",
text16: "✓ Copiado",
},
- edu: {
- heading1: "Buenas prácticas de variables de entorno",
- heading2: "Gestión de secretos",
- heading3: "Seguridad de .env",
- heading4: "Consejos profesionales",
- p1: "
Las variables de entorno son una parte fundamental de la metodología \"Twelve-Factor App\", que defiende una separación estricta entre la configuración y el código. Al usar variables de entorno, puedes ejecutar el mismo código en distintos entornos (desarrollo, staging, producción) simplemente cambiando los valores de configuración.
Las buenas prácticas incluyen usar nombres descriptivos en mayúsculas (por ejemplo, DATABASE_URL), proporcionar valores predeterminados para ajustes no críticos y nunca codificar directamente información sensible en tu control de versiones.
",
- p2: "
Los secretos son una categoría especial de variables de entorno que contienen información sensible, como claves de API, contraseñas de bases de datos y certificados privados. Gestionarlos de forma segura es fundamental para prevenir filtraciones de datos. Deberías usar un servicio dedicado de gestión de secretos (como AWS Secrets Manager, HashiCorp Vault o Cloudflare Secrets) para entornos de producción.
Para el desarrollo local, se suelen usar archivos .env, pero nunca deben subirse a tu repositorio de git. Añade siempre *.env a tu archivo .gitignore.
",
- p3: "
Al compartir archivos .env con compañeros de equipo para depuración, existe un alto riesgo de exponer accidentalmente secretos de producción. Nuestro gestor ayuda a mitigar este riesgo con una función de \"Enmascarar valores sensibles\". Usa heurísticas para identificar claves como SECRET, TOKEN o PASSWORD y reemplaza sus valores con una versión enmascarada (por ejemplo, ab...yz (32)).
Esto te permite comparar la estructura y los valores no sensibles de tus archivos de entorno sin filtrar los secretos reales.
",
- p4: "
Usa el botón \"Intercambiar\" para invertir rápidamente la dirección de la comparación entre el Entorno A y el Entorno B.
Aprovecha el campo \"Filtrar claves\" para centrarte en grupos específicos de variables, como todas las claves que empiezan por AWS_ o DB_.
Incluye siempre un archivo .env.example en tu repositorio con valores de ejemplo para mostrar a otros desarrolladores qué variables se necesitan para que la app funcione.
Recuerda que las variables de entorno suelen ser cadenas de texto; si tu app necesita un booleano o un número, asegúrate de analizar el valor correctamente en tu código.
",
- },
cheatsheet: {
title: "Notas sobre Dotenv",
h0: "Estrategia de enmascarado",
@@ -2638,16 +2326,6 @@ export default {
text7: "Aún no hay vista previa.",
text8: "✓ Copiado",
},
- edu: {
- heading1: "¿Qué es SVG?",
- p1: "SVG (Scalable Vector Graphics) es un formato de imagen vectorial basado en XML para gráficos bidimensionales, con soporte para interactividad y animación. A diferencia de los formatos rasterizados como JPEG o PNG, los SVG se definen mediante rutas matemáticas, lo que significa que se pueden escalar a cualquier tamaño sin perder calidad. Esto los hace perfectos para logotipos, iconos e ilustraciones en la web, donde se mantienen nítidos en cualquier dispositivo, desde pantallas móviles hasta monitores de escritorio de alta resolución.",
- heading2: "Cómo usar esta herramienta",
- p2: "Pega tu código SVG en el área de texto Entrada SVG a la izquierda. Haz clic en Vista previa para ver el gráfico y extraer su paleta de colores. Usa los botones Optimizar o Minificar para limpiar el marcado y reducir el tamaño del archivo. Opcionalmente, reemplaza colores específicos introduciendo nuevos valores en el panel Colores y haciendo clic en Aplicar. Haz clic en Copiar o Descargar para guardar tu SVG saneado y optimizado.",
- heading3: "Casos de uso comunes",
- p3: "Gestión de iconos para limpiar SVG exportados desde herramientas de diseño como Figma o Illustrator. Personalización de tema para cambiar rápidamente los colores de un conjunto de iconos y adaptarlos a tu paleta de marca. Seguridad para sanear SVG de fuentes no confiables y eliminar posibles scripts o referencias externas. Rendimiento para minificar el marcado SVG y reducir el tamaño de los gráficos en línea, mejorando los tiempos de carga de la página.",
- heading4: "Consejos profesionales",
- p4: "Usa el botón currentColor para convertir todos los fills y strokes explícitos a currentColor, haciendo que tu SVG se pueda estilizar fácilmente con CSS. Optimiza siempre tus SVG antes de usarlos en producción para asegurarte de que sean lo más pequeños posible. Al crear SVG en herramientas de diseño, usa las funciones Outline Stroke y Simplify Path para reducir la complejidad del código generado antes de optimizarlo.",
- },
cheatsheet: {
title: "Notas de seguridad de SVG",
h0: "Saneamiento",
@@ -2801,16 +2479,6 @@ export default {
text28: "Haz clic en Escanear para buscar secretos.",
text29: "✓ Copiado",
},
- edu: {
- heading1: "¿Qué son las filtraciones de secretos?",
- p1: "Las filtraciones de secretos ocurren cuando información sensible, como claves de API, contraseñas o tokens privados, se sube accidentalmente al control de versiones o se comparte en foros públicos. Estas filtraciones pueden provocar accesos no autorizados, filtraciones de datos y pérdidas económicas. Esta herramienta ayuda a identificar patrones comunes de secretos localmente en tu navegador antes de que compartas o subas tu código.",
- heading2: "Cómo usar esta herramienta",
- p2: "Pega tu código, configuración o archivos de log en el área de entrada. Haz clic en el botón Escanear para analizar el texto en busca de posibles secretos. Revisa los hallazgos y los consejos para cada elemento detectado. Usa el botón Copiar redactado para obtener una versión segura de tu texto con los secretos enmascarados, lista para compartir.",
- heading3: "Casos de uso comunes",
- p3: "Comprobaciones previas al commit para escanear tu código antes de subirlo y asegurarte de que no incluye secretos. Redacción de logs para enmascarar tokens sensibles en los logs antes de compartirlos con soporte o compañeros de equipo. Auditoría de seguridad para revisar rápidamente archivos de configuración en busca de credenciales codificadas.",
- heading4: "Consejos profesionales",
- p4: "Rota siempre tus credenciales de inmediato si descubres que se han filtrado. Usa variables de entorno o gestores de secretos en lugar de codificar secretos directamente en tu código fuente. Activa Incluir patrones de baja severidad para un escaneo más exhaustivo, pero prepárate para más falsos positivos.",
- },
cheatsheet: {
title: "Qué hacer si encuentras un secreto",
h0: "Pasos inmediatos",
@@ -2907,16 +2575,6 @@ export default {
text15: "✓ Estructura JWKS válida (",
text16: "Pega un JWK.",
},
- edu: {
- heading1: "¿Qué es un JWT?",
- p1: "Un JSON Web Token (JWT) es una forma compacta y segura para URL de representar claims que se transfieren entre dos partes. Un JWT consta de tres partes codificadas en Base64URL separadas por puntos: el Header (algoritmo y tipo), el Payload (claims) y la Signature. La firma garantiza que el token no ha sido manipulado. Los JWT se usan habitualmente para la autenticación y el intercambio de información en API web. Los claims estándar incluyen sub (sujeto), iss (emisor), aud (audiencia), exp (expiración), nbf (no antes de), iat (emitido en) y jti (ID de JWT).",
- heading2: "Algoritmos JWT",
- p2: "HS256/384/512 usa HMAC con SHA-2 y un secreto compartido: simple, pero ambas partes deben tener la misma clave. RS256/384/512 usa firmas asimétricas RSA PKCS#1 v1.5: ideal para arquitecturas de microservicios donde los servicios solo necesitan la clave pública. ES256/384/512 usa ECDSA con curvas NIST para firmas más pequeñas que RSA con seguridad equivalente. PS256/384/512 usa RSA-PSS, una variante probabilística preferida sobre RS* en sistemas modernos.",
- heading3: "JWK y JWKS",
- p3: "Un JSON Web Key (JWK) es una estructura JSON que representa una clave criptográfica. Un JWK Set (JWKS) es una estructura JSON que contiene un array de JWK bajo la propiedad keys. Los servicios publican su JWKS en una URL bien conocida (por ejemplo, /.well-known/jwks.json), lo que permite a los clientes obtener claves públicas para verificar JWT sin un intercambio de claves fuera de banda. Las claves de un JWKS se identifican mediante su kid (ID de clave), al que hacen referencia los headers de los JWT.",
- heading4: "Buenas prácticas de seguridad",
- p4: "Valida siempre los claims exp, nbf, iss y aud en el servidor. Nunca uses el algoritmo alg: none en producción; elimina toda la protección de la firma. Prefiere los algoritmos asimétricos (RS*, ES*, PS*) sobre HMAC cuando varios servicios necesiten verificar tokens. Rota las claves regularmente y usa kid para identificar qué clave se usó para firmar cada token. Almacena las claves privadas de forma segura; nunca las subas al control de versiones. Usa tiempos de expiración cortos y tokens de actualización (refresh tokens) en lugar de JWT de larga duración.",
- },
},
"encoding-workbench": {
name: "Banco de Codificación",
@@ -2980,16 +2638,6 @@ export default {
js: {
noLayers: "No se detectaron capas de codificación reconocibles.",
},
- edu: {
- heading1: "¿Qué diferencia hay entre codificación y hashing?",
- heading2: "Cómo usar esta herramienta",
- heading3: "Codificación en capas explicada",
- heading4: "Guía de algoritmos de hash",
- p1: "
La codificación transforma los datos en una representación distinta que se puede revertir (decodificar). Los formatos comunes incluyen Base64 (usado para transmitir datos binarios por canales de texto), codificación URL, codificación de entidades HTML y hexadecimal. La codificación no es cifrado; no ofrece confidencialidad.
El hashing es una transformación matemática unidireccional. Una función de hash criptográfica toma cualquier entrada y produce una huella de longitud fija. No es posible invertir un hash para recuperar la entrada original. Los hashes se usan para verificar la integridad de archivos, almacenar contraseñas de forma segura y generar firmas digitales.
",
- p2: "
Pestaña Codificar / Decodificar: Pega texto y elige una operación (Base64, URL, HTML, Hex), o haz clic en Detectar capas automáticamente para desenvolver automáticamente varias codificaciones anidadas.
Pestaña Hash: Introduce texto o selecciona un archivo, elige los algoritmos y haz clic en Calcular todos los hashes. Activa el modo HMAC para calcular hashes con clave usando un secreto compartido.
Pestaña Identificar: Pega un hash o una cadena codificada desconocida y haz clic en Identificar para ver los algoritmos probables con su nivel de confianza.
",
- p3: "
Los datos del mundo real a menudo se codifican varias veces. Por ejemplo, un payload podría estar codificado en URL, luego en Base64 y después colocado dentro de una cadena hexadecimal. La función Detectar capas automáticamente inspecciona el patrón de entrada, intenta cada decodificación en secuencia y visualiza cada paso como una tarjeta para que veas exactamente cómo se envolvieron los datos.
",
- p4: "
MD5: salida de 128 bits. Criptográficamente roto; úsalo solo para compatibilidad heredada o sumas de comprobación no relacionadas con la seguridad.
SHA-1: salida de 160 bits. Obsoleto para uso en seguridad. Aún se encuentra en commits de Git y certificados antiguos.
SHA-256: salida de 256 bits. De propósito general, ampliamente usado en TLS, firma de código y comprobaciones de integridad de datos.
SHA-512: salida de 512 bits. Mayor margen de seguridad; preferido para flujos de trabajo relacionados con contraseñas.
bcrypt: función adaptativa de hash de contraseñas con un factor de costo configurable. Úsala para almacenar contraseñas, no para integridad de datos.
Proof Key for Code Exchange (PKCE, RFC 7636) se diseñó originalmente para apps móviles y nativas que no pueden almacenar de forma segura un secreto de cliente. Funciona haciendo que el cliente genere un code_verifier aleatorio, derive de él un code_challenge (SHA-256 + base64url) y envíe el challenge junto con la solicitud de autorización. Al intercambiar el código de autorización por tokens, el cliente envía el code_verifier original. El servidor de autorización verifica que coincide con el challenge anterior, demostrando que la solicitud de token proviene del mismo cliente que inició el flujo.
Incluso para clientes confidenciales (apps del lado del servidor con un secreto de cliente), OAuth 2.1 ahora recomienda PKCE como defensa contra los ataques de interceptación del código de autorización.
",
- heading2: "¿Por qué está obsoleto el flujo implícito?",
- p2: "
El flujo implícito (response_type=token) se diseñó como un atajo para aplicaciones de una sola página, devolviendo el token de acceso directamente en el fragmento de la URL. Esto crea problemas graves: los tokens en las URL aparecen en el historial del navegador, los logs del servidor y los encabezados referrer, y el flujo es vulnerable a ataques de inyección de tokens. OAuth 2.0 Security Best Current Practice (RFC 9700) y OAuth 2.1 eliminan explícitamente el flujo implícito en favor de Authorization Code + PKCE, que las SPA pueden usar de forma segura sin un secreto de cliente.
JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire pour les humains, et facile à analyser et générer pour les machines. Il est basé sur un sous-ensemble du standard du langage de programmation JavaScript. JSON est un format texte complètement indépendant du langage, mais utilise des conventions familières aux programmeurs de la famille de langages C.
Ces propriétés font de JSON un langage idéal d'échange de données pour les applications web, les API et les fichiers de configuration. Il est devenu le standard de facto pour l'échange de données sur le web, remplaçant largement XML grâce à son empreinte plus petite et ses meilleures performances.
",
- heading2: "Comment utiliser cet outil",
- p2: "
Collez vos données JSON brutes ou désordonnées dans l'éditeur JSON d'entrée à gauche.
Cliquez sur le bouton Formater pour embellir le code avec une indentation appropriée et une coloration syntaxique.
Alternativement, utilisez le bouton Minifier pour supprimer tous les espaces blancs pour une utilisation en production.
Vérifiez l'indicateur de statut pour vous assurer que votre JSON est valide ; s'il y a une erreur, l'outil mettra en évidence la ligne exacte.
Cliquez sur Copier pour sauvegarder le résultat formaté dans votre presse-papiers ou sur Effacer pour recommencer.
Débogage d'API : Formater rapidement les réponses JSON illisibles des APIs REST pour inspecter les structures de données.
Validation de configuration : S'assurer que vos fichiers package.json, tsconfig.json ou autres fichiers de configuration sont syntaxiquement corrects.
Préparation des données : Minifier les données JSON avant de les intégrer dans le code ou de les envoyer sur un réseau pour économiser la bande passante.
Apprentissage et documentation : Utiliser la sortie embellie pour créer des exemples clairs pour la documentation technique ou les tutoriels.
",
- heading4: "Conseils de pro",
- p4: "
Utilisez le bouton Valider si vous souhaitez uniquement vérifier les erreurs de syntaxe sans modifier le formatage de votre entrée.
Faites attention à la statistique Profondeur maximale pour identifier les structures excessivement complexes ou profondément imbriquées qui pourraient causer des problèmes de performance.
Utilisez toujours des guillemets doubles pour les clés et les valeurs de chaîne, car les guillemets simples sont invalides en JSON standard.
Le JSON Web Token (JWT) est une norme ouverte (RFC 7519) qui définit un moyen compact et autonome de transmettre en toute sécurité des informations entre deux parties sous forme d'objet JSON. Ces informations peuvent être vérifiées et fiables car elles sont signées numériquement. Les JWT peuvent être signés à l'aide d'un secret (avec l'algorithme HMAC) ou d'une paire de clés publique/privée utilisant RSA ou ECDSA.
En raison de leur taille compacte, les JWT sont couramment utilisés dans des scénarios d'authentification et d'échange d'informations, comme les jetons Bearer dans les en-têtes HTTP Authorization.
",
- heading2: "Comment utiliser cet outil",
- p2: "
Collez votre jeton : Copiez votre JWT encodé (header.payload.signature) et collez-le dans le champ de saisie.
Décodage automatique : L'outil détecte automatiquement le jeton et décode ses composants en temps réel.
Inspectez l'en-tête : Vérifiez l'algorithme (alg) et le type de jeton (typ) dans la section En-tête.
Analysez le payload : Examinez les claims, comme l'expiration (exp), l'émetteur (iss) et le sujet (sub) dans la section Payload.
Vérifiez les claims : Consultez l'encadré Analyse des claims pour des dates lisibles et le statut de validation.
Authentification : Inspecter les jetons ID ou les jetons d'accès de fournisseurs comme Auth0, Firebase ou AWS Cognito.
Débogage : Comprendre pourquoi un jeton est rejeté par votre backend (par exemple, vérifier s'il a expiré).
Audit de sécurité : Vérifier qu'aucune donnée sensible n'est exposée par accident dans le payload non chiffré.
Développement : Consulter rapidement le contenu d'un jeton pendant le développement d'une API sans écrire de code personnalisé.
",
- heading4: "Conseils de pro",
- p4: "
Le JWT n'est pas chiffré : Rappelez-vous que les JWT standards sont uniquement signés, pas chiffrés. Quiconque possède le jeton peut lire le payload. Ne stockez jamais de mots de passe ou de clés privées dans un JWT.
Vérifiez l'expiration : Vérifiez toujours le claim exp. Si un jeton est expiré, il doit être rejeté par votre application.
Utilisez HTTPS : Comme les JWT sont souvent utilisés pour l'authentification, ils doivent toujours être transmis via des connexions HTTPS sécurisées pour éviter toute interception.
",
- heading5: "Structure du jeton (header.payload.signature)",
- p5: "
Un JWT se compose généralement de trois parties séparées par des points :
Header : Se compose généralement de deux parties : le type du jeton (JWT) et l'algorithme de signature utilisé (par exemple, HS256 ou RS256).
Payload : Contient les claims — des déclarations sur une entité (généralement l'utilisateur) et des données supplémentaires.
Signature : Créée en prenant le header encodé, le payload encodé, un secret et l'algorithme spécifié dans le header, puis en les signant.
",
- heading6: "Considérations de sécurité",
- p6: "
Bien que les JWT soient signés pour garantir l'intégrité, ils ne sont généralement PAS chiffrés. Cela signifie que quiconque possède le jeton peut décoder le header et le payload pour lire les informations qu'ils contiennent. Ne stockez jamais d'informations sensibles comme des mots de passe ou des clés privées dans le payload d'un JWT.
De plus, vérifiez toujours le claim exp (expiration) pour prévenir les attaques par rejeu, et assurez-vous que votre serveur valide la signature avant de faire confiance aux données du payload.
",
- heading7: "Conseils de pro",
- p7: "
Utilisez le claim exp pour définir une durée d'expiration courte pour les jetons d'accès afin de limiter l'impact d'un jeton volé.
Utilisez toujours HTTPS pour transmettre les JWT afin d'éviter toute interception par une attaque de l'homme du milieu.
Si vous utilisez des algorithmes asymétriques (comme RS256), vous pouvez partager votre clé publique pour que d'autres services puissent vérifier vos jetons sans pouvoir en créer.
Vérifiez le claim nbf (Not Before) si vous souhaitez émettre un jeton qui ne devient valide qu'à un moment précis dans le futur.
",
- },
cheatsheet: {
title: "Référence rapide JWT",
h0: "Structure",
@@ -193,16 +167,6 @@ export default {
text0: "✓ Copié !",
tpl1: "GUID :",
},
- edu: {
- heading1: "Qu'est-ce qu'un UUID ?",
- p1: "Un identifiant unique universel (UUID) est un nombre de 128 bits utilisé pour identifier de manière unique des informations dans les systèmes informatiques. Ils sont conçus pour être générés indépendamment, sans autorité centrale, tout en maintenant une probabilité de collision négligeable.",
- heading2: "Comment utiliser cet outil",
- p2: "Sélectionnez la version UUID (v1 pour une génération basée sur le temps, v4 pour l'aléatoire) et le nombre d'identifiants dont vous avez besoin. Cliquez sur Générer pour créer une liste d'identifiants uniques prêts à l'emploi dans votre base de données ou votre application.",
- heading3: "Cas d'utilisation courants",
- p3: "Clés primaires dans les bases de données distribuées, identifiants de session, suivi des transactions, et nommage de fichiers ou ressources temporaires où l'unicité est critique sur plusieurs systèmes.",
- heading4: "Conseils de pro",
- p4: "L'UUID v4 est le choix le plus courant pour des identifiants uniques génériques, car il repose sur un aléa de haute qualité. Utilisez la v1 si vous avez besoin de trier les identifiants par date de création.",
- },
},
"password-generator": {
name: "Générateur de Mots de Passe",
@@ -265,24 +229,6 @@ export default {
status6: "Faible",
text1: "Veuillez saisir une adresse e-mail de base valide.",
},
- edu: {
- heading1: "Qu'est-ce qui rend un mot de passe sécurisé ?",
- p1: "
Un mot de passe sécurisé est votre première ligne de défense contre les accès non autorisés. À l'ère du calcul haute vitesse, la sécurité est définie par l'entropie — la mesure de l'aléatoire et de l'imprévisibilité d'une chaîne. Un mot de passe fort doit être long (au moins 16 caractères), unique pour chaque compte, et composé d'un ensemble diversifié de types de caractères incluant majuscules, minuscules, chiffres et symboles.
Évitez d'utiliser des informations personnelles comme les dates de naissance, les noms d'animaux ou les mots courants du dictionnaire. Même des substitutions d'apparence complexe comme P@ssw0rd123 sont facilement déchiffrées par des outils modernes de force brute qui utilisent de vastes dictionnaires de motifs courants.
",
- heading2: "Comment utiliser cet outil",
- p2: "
Sélectionnez votre mode : Choisissez entre Mot de passe, Nom d'utilisateur, Phrase de passe ou Alias e-mail selon vos besoins.
Ajustez la longueur : Utilisez le curseur pour définir la longueur souhaitée. Pour les mots de passe, 16+ caractères sont recommandés pour une haute sécurité.
Configurez les options : Activez ou désactivez les jeux de caractères (symboles, chiffres, etc.) ou les styles (lisible vs. sécurisé).
Générer : Cliquez sur le bouton Générer pour créer vos identifiants uniques.
Copier : Utilisez l'icône de copie pour déplacer en toute sécurité le résultat vers votre presse-papiers ou gestionnaire de mots de passe.
Sécurité des comptes : Générer des mots de passe uniques à haute entropie pour chaque service en ligne que vous utilisez.
Administration système : Créer des mots de passe temporaires sécurisés pour les nouveaux utilisateurs ou les comptes de service.
Protection de la vie privée : Utiliser des alias Plus (ex. : utilisateur+service@domaine.com) pour suivre quels services vendent vos données ou pour filtrer le spam.
Sécurité mémorable : Utiliser le générateur de phrases de passe pour les mots de passe maîtres qui doivent être tapés manuellement mais résistent au déchiffrage.
",
- heading4: "Conseils de pro",
- p4: "
Utilisez un gestionnaire de mots de passe : N'essayez jamais de mémoriser des mots de passe complexes. Utilisez cet outil pour les générer et les stocker dans un gestionnaire de mots de passe réputé comme Bitwarden, 1Password ou KeePassXC.
L'entropie plutôt que la complexité : La longueur est souvent plus importante que la variété des caractères. Un mot de passe de 20 caractères en minuscules est souvent plus difficile à déchiffrer qu'un de 8 caractères complexe.
Rotation en cas de violation : Si un service que vous utilisez est compromis, utilisez ce générateur pour créer immédiatement un nouveau mot de passe complètement différent.
",
- heading5: "Qu'est-ce qui rend un mot de passe sécurisé ?",
- p5: "
Un mot de passe sécurisé est votre première ligne de défense contre les accès non autorisés. À l'ère du calcul haute vitesse, la sécurité est définie par l'entropie — la mesure de l'aléatoire et de l'imprévisibilité d'une chaîne. Un mot de passe fort doit être long (au moins 16 caractères), unique pour chaque compte, et composé d'un ensemble diversifié de types de caractères incluant majuscules, minuscules, chiffres et symboles.
Évitez d'utiliser des informations personnelles comme les dates de naissance, les noms d'animaux ou les mots courants du dictionnaire. Même des substitutions d'apparence complexe comme P@ssw0rd123 sont facilement déchiffrées par des outils modernes de force brute qui utilisent de vastes dictionnaires de motifs courants.
",
- heading6: "L'entropie expliquée",
- p6: "
L'entropie est une mesure de l'aléatoire et de l'imprévisibilité d'un mot de passe, exprimée généralement en bits. Plus l'entropie est élevée, plus le mot de passe est fort. Par exemple, un mot de passe de 10 caractères utilisant uniquement des lettres minuscules a une entropie bien inférieure à un mot de passe de 10 caractères utilisant un ensemble complet de caractères alphanumériques et spéciaux.
Notre générateur calcule l'entropie en temps réel pour vous donner une mesure objective de la force de votre mot de passe. Un mot de passe avec plus de 100 bits d'entropie est considéré comme exceptionnellement fort et résistant aux techniques modernes de déchiffrage.
",
- heading7: "Meilleures pratiques",
- p7: "
Ne réutilisez jamais les mots de passe : Utilisez un mot de passe unique pour chaque compte. Si un service est compromis, vos autres comptes restent sécurisés.
Utilisez un gestionnaire de mots de passe : Comme les humains ne peuvent pas mémoriser des dizaines de mots de passe complexes et uniques, utilisez un gestionnaire de mots de passe réputé pour les stocker en toute sécurité.
Activez l'AMF : L'authentification multifacteur ajoute une deuxième couche de sécurité critique même si votre mot de passe est compromis.
Évitez les informations personnelles : N'incluez jamais de noms, dates de naissance ou mots courants que l'on peut trouver dans un dictionnaire.
",
- heading8: "Conseils de pro",
- p8: "
Utilisez le mode Phrase de passe pour les comptes que vous devez taper manuellement ; elles sont plus faciles à retenir mais restent très sécurisées.
Pour une sécurité maximale, générez le mot de passe le plus long autorisé par le service (souvent 64 ou 128 caractères).
Auditez régulièrement vos mots de passe enregistrés en utilisant les fonctionnalités de vérification de sécurité intégrées de votre gestionnaire de mots de passe.
Envisagez d'utiliser des alias Plus (ex. : utilisateur+service@gmail.com) pour suivre quels services vendent vos données ou envoient du spam.
",
- },
},
"hash-calculator": {
name: "Calculateur de Hash",
@@ -350,16 +296,6 @@ export default {
tpl4: "En attente de saisie...",
text2: "Calculé : ",
},
- edu: {
- heading1: "Qu'est-ce que le hachage ?",
- p1: "
Le hachage cryptographique est un processus mathématique qui transforme n'importe quelle donnée d'entrée (texte ou fichiers) en une chaîne de caractères de taille fixe, généralement un nombre hexadécimal. Cette empreinte est unique à l'entrée ; même un seul bit modifié dans les données source produit un hash complètement différent, un phénomène appelé effet d'avalanche.
Contrairement au chiffrement, le hachage est une fonction à sens unique. Vous ne pouvez pas inverser un hash pour récupérer les données d'origine. Cela le rend idéal pour vérifier l'intégrité des données, stocker des mots de passe en toute sécurité (combinés à des sels), et identifier des fichiers sans exposer leur contenu.
",
- heading2: "Comment utiliser cet outil",
- p2: "
Sélectionnez le type d'entrée : Choisissez l'onglet Texte pour des chaînes ou l'onglet Fichier pour des fichiers locaux.
Fournissez l'entrée : Collez votre texte ou glissez-déposez votre fichier dans l'espace de travail.
HMAC optionnel : Saisissez une clé secrète dans le champ HMAC si vous devez générer un hash à clé pour l'authentification.
Consultez les résultats : L'outil calcule automatiquement plusieurs variantes de hash (SHA-256, SHA-512, etc.) en temps réel.
Vérifiez l'intégrité : Utilisez l'onglet Vérifier pour comparer un hash connu à votre entrée afin de détecter toute altération.
Vérification de logiciel : Vérifier la somme de contrôle SHA-256 d'un installateur téléchargé pour s'assurer qu'il n'a pas été corrompu ou modifié par un tiers.
Intégrité des données : Générer des hashs pour des enregistrements de base de données ou des fichiers de configuration afin de détecter des modifications non autorisées au fil du temps.
Sécurité des mots de passe : Comprendre comment différents algorithmes (comme SHA-512) transforment du texte brut en représentations sécurisées.
Investigation numérique : Identifier des fichiers en double ou vérifier que des preuves n'ont pas été altérées.
",
- heading4: "Conseils de pro",
- p4: "
Privilégiez SHA-256 et supérieur : Utilisez toujours SHA-256 ou SHA-512 pour les tâches sensibles à la sécurité. MD5 et SHA-1 sont cryptographiquement compromis et ne doivent être utilisés que pour la compatibilité héritée.
Utilisez HMAC pour l'authenticité : Si vous devez vérifier à la fois l'intégrité et l'identité de l'expéditeur, utilisez HMAC avec une clé secrète partagée.
Vérifiez la source : Lors de la vérification de téléchargements, obtenez toujours le hash attendu depuis un site officiel de confiance sécurisé en HTTPS.
",
- },
cheatsheet: {
title: "Référence des algorithmes de hash",
h0: "Comparaison des algorithmes",
@@ -435,16 +371,6 @@ export default {
text5: "Utilisez au moins /",
text6: "IPv6 /",
},
- edu: {
- heading1: "Qu'est-ce que CIDR ?",
- heading2: "Comment utiliser cet outil",
- heading3: "Cas d'utilisation courants",
- heading4: "Conseils de pro",
- p1: "Le routage inter-domaines sans classe (CIDR) est une méthode d'allocation des adresses IP et du routage IP. Il a remplacé l'ancien système basé sur les classes (A, B et C) pour offrir plus de flexibilité et d'efficacité dans la distribution des adresses.",
- p2: "Saisissez une adresse IP avec un préfixe (ex. : 192.168.1.0/24) ou utilisez le curseur pour ajuster la longueur du préfixe. Cliquez sur \"Lancer l'analyse\" pour voir les détails du réseau, les plages d'hôtes utilisables et les représentations binaires.",
- p3: "Planification des sous-réseaux pour l'infrastructure cloud (VPC), dépannage des problèmes de routage, calcul de la capacité d'hôtes pour un préfixe donné et conversion entre CIDR et masques de sous-réseau.",
- p4: "Rappellez-vous qu'en IPv4, les première et dernière adresses d'un sous-réseau sont généralement réservées pour l'ID de réseau et l'adresse de diffusion. En IPv6, les sous-réseaux sont presque toujours /64 pour les réseaux locaux standard.",
- },
cheatsheet: {
title: "Référence rapide de sous-réseau",
h0: "Sous-réseaux courants",
@@ -619,16 +545,6 @@ export default {
tpl3: "Modifier les valeurs par défaut :",
tpl4: "Aucun port ne correspond à votre recherche.",
},
- edu: {
- heading1: "Catégories de ports et guide de sécurité",
- p1: "Les ports bien connus (0-1023) sont attribués par l'IANA et nécessitent des privilèges root sur les systèmes Unix. Les ports enregistrés (1024-49151) sont utilisés par les applications. Les ports dynamiques/éphémères (49152-65535) sont utilisés pour les connexions côté client. Comprendre les plages de ports est essentiel pour la configuration du pare-feu et la sécurité réseau.",
- heading2: "Comment utiliser cet outil",
- p2: "Recherchez par numéro de port ou nom de service pour trouver les détails du protocole et les niveaux de risque de sécurité. Filtrez par catégorie (Bien connus, Enregistrés, Dynamiques) ou protocole (TCP/UDP) pour affiner les résultats. Cliquez sur une ligne pour voir tous les détails, y compris les vulnérabilités courantes et les recommandations de durcissement.",
- heading3: "Cas d'utilisation courants",
- p3: "Configuration des règles de pare-feu, dépannage réseau, identification de ports ouverts inattendus lors d'audits de sécurité, et référence rapide pour les affectations de ports des protocoles.",
- heading4: "Conseils de pro",
- p4: "Utilisez le filtre de risque pour identifier rapidement les ports à haut risque de votre réseau. La section Top 50 des ports les plus courants vous donne un aperçu instantané des services les plus fréquemment utilisés.",
- },
cheatsheet: {
c2: "\n
\n
Fermez les ports inutilisés: Réduisez la surface d'attaque en désactivant les services inutiles
\n
Utilisez des pare-feux: Mettez en place des contrôles d'accès au niveau réseau
\n
Surveillez le trafic: Journalisez les connexions aux ports sensibles (22, 443, 3389)
\n
Préférez les protocoles chiffrés: Utilisez SSH (22) au lieu de Telnet (23), et SFTP au lieu de FTP
\n
Changez les valeurs par défaut: Envisagez des ports non standard pour SSH/RDP (sécurité par obscurité)
\n
",
c1: "\n
\n
Port
Service
Risque
\n
21
FTP
Transferts de fichiers non chiffrés
\n
23
Telnet
Authentification en clair
\n
25
SMTP
Risque de relais de spam
\n
53
DNS
Attaques par amplification DDoS
\n
445
SMB
Propagation de rançongiciels
\n
3389
RDP
Attaques par force brute
\n
",
@@ -872,16 +788,6 @@ export default {
text4: "Avertissements",
alert0: "Veuillez d'abord générer une configuration",
},
- edu: {
- heading1: "À propos de WireGuard",
- p1: "WireGuard est un protocole VPN moderne et hautes performances qui utilise une cryptographie de pointe. Il est conçu pour être plus simple et plus rapide que les anciens protocoles comme OpenVPN et IPsec, avec une surface d'attaque bien plus réduite grâce à sa base de code minimale. WireGuard fait désormais partie du noyau Linux et est pris en charge nativement sur Windows, macOS, iOS et Android.",
- heading2: "Comment utiliser cet outil",
- p2: "Sélectionnez un modèle de topologie (Point à point, Étoile, Site à site ou Nomade) pour préremplir une configuration. Cliquez sur Générer les clés pour créer une nouvelle paire de clés localement dans votre navigateur. Remplissez les champs obligatoires et cliquez sur Générer la configuration pour produire le fichier de configuration WireGuard. Utilisez Télécharger .conf pour enregistrer le fichier ou Générer un QR pour créer un code QR destiné à l'import mobile.",
- heading3: "Cas d'utilisation courants",
- p3: "VPN d'accès distant pour les employés se connectant aux réseaux de l'entreprise. VPN site à site pour connecter les réseaux de succursales. Serveur VPN personnel pour naviguer en sécurité sur le Wi-Fi public. Tunneling d'appareils IoT pour une communication sécurisée entre dispositifs embarqués.",
- heading4: "Conseils de pro",
- p4: "Utilisez PersistentKeepalive = 25 sur les clients derrière un NAT pour maintenir le tunnel lorsqu'aucun trafic ne circule. PresharedKey ajoute une couche supplémentaire de chiffrement symétrique pour la résistance post-quantique. AllowedIPs = 0.0.0.0/0 achemine tout le trafic à travers le tunnel (tunnel complet), tandis que des CIDR spécifiques créent un tunnel scindé.",
- },
cheatsheet: {
title: "Référence rapide WireGuard",
h0: "Champs Interface",
@@ -1025,14 +931,6 @@ export default {
tpl6: "Exemple :",
tpl7: "Cliquez sur un champ du diagramme pour voir les détails.",
},
- edu: {
- heading1: "Que sont les en-têtes de protocole ?",
- p1: "Les en-têtes de protocole sont des données structurées qui précèdent le payload dans les paquets réseau. Ils contiennent des informations de contrôle telles que les adresses source et destination, les types de protocole, les numéros de séquence et les sommes de contrôle. Comprendre la structure des en-têtes est essentiel pour le débogage réseau, l'analyse de paquets et l'implémentation de protocoles.",
- heading2: "Comment utiliser cet outil",
- p2: "Sélectionnez un protocole dans les onglets pour voir sa structure d'en-tête. Chaque bloc coloré représente un champ avec sa taille indiquée. Cliquez sur un champ pour voir des informations détaillées, notamment le nom et la description du champ, le décalage en bits/octets, les valeurs courantes et leur signification, et la référence RFC. Utilisez l'analyseur de dump hexadécimal pour analyser de vraies captures de paquets en collant la sortie hex d'outils comme tcpdump ou Wireshark.",
- heading3: "Cas d'utilisation courants",
- p3: "Analyse de paquets pour comprendre la structure du trafic réseau capturé, apprentissage des protocoles comme aide visuelle pour étudier les protocoles réseau, débogage pour identifier des en-têtes malformés ou des valeurs de champ incorrectes, et référence de développement lors de l'implémentation de protocoles réseau.",
- },
cheatsheet: {
c3: "\n
\n
Valeur
Protocole
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
Champ
Taille
Description
\n
Source Port
2 octets
Numéro de port de l'émetteur
\n
Dest Port
2 octets
Numéro de port du destinataire
\n
Seq Number
4 octets
Numéro de séquence
\n
Ack Number
4 octets
Numéro d'acquittement
\n
Data Offset
4 bits
Longueur d'en-tête / 4
\n
Flags
9 bits
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2 octets
Taille de la fenêtre de réception
\n
",
@@ -1108,16 +1006,6 @@ export default {
tpl0: "Différences",
tpl1: "Aucune différence trouvée (ou saisie vide)",
},
- edu: {
- heading1: "Qu'est-ce que la comparaison de texte (diff) ?",
- p1: "La comparaison de texte (diff) consiste à comparer deux séquences de données pour identifier leurs différences. Elle met en évidence ce qui a été ajouté, supprimé ou modifié. C'est une opération fondamentale en développement logiciel, en analyse de données et en gestion de contenu, permettant de suivre les modifications au fil du temps ou de comparer différentes versions d'un document.",
- heading2: "Algorithmes de diff",
- p2: "La plupart des outils de comparaison de texte utilisent des algorithmes basés sur le problème de la plus longue sous-séquence commune (LCS). L'objectif est de trouver la plus longue séquence d'éléments apparaissant dans les deux textes dans le même ordre relatif. Les implémentations courantes incluent l'algorithme de diff de Myers, très efficace et utilisé par Git, ainsi que l'algorithme de Hunt-McIlroy. Ces algorithmes calculent le nombre minimal de modifications nécessaires pour transformer un texte en un autre.",
- heading3: "Cas d'utilisation",
- p3: "Revues de code pour que les développeurs voient exactement ce qui a changé dans une pull request. Les systèmes de contrôle de version comme Git stockent l'historique sous forme de série de diffs pour économiser de l'espace. Audit de contenu pour les rédacteurs et éditeurs comparant des brouillons afin de s'assurer que toutes les modifications demandées ont été effectuées. Validation de données pour comparer des fichiers de configuration ou des exports de base de données afin de trouver des divergences.",
- heading4: "Conseils de pro",
- p4: "De nombreux outils de diff proposent des options pour ignorer les changements d'indentation ou les espaces en fin de ligne, ce qui réduit le bruit lors de la comparaison de code. Incluez quelques lignes de texte inchangé autour des différences (lignes de contexte) pour comprendre l'impact des changements. Les diffs au niveau du mot sont souvent plus utiles pour la prose et les documents en langage naturel, tandis que les diffs au niveau de la ligne sont la norme pour le code.",
- },
},
"regex-visualizer": {
name: "Visualiseur de Regex",
@@ -1168,16 +1056,6 @@ export default {
tpl5: "Aucun groupe",
tpl6: "Expression régulière invalide",
},
- edu: {
- heading1: "Que sont les expressions régulières ?",
- p1: "Les expressions régulières (regex) sont des motifs puissants utilisés pour faire correspondre des combinaisons de caractères dans des chaînes. Ce sont des outils essentiels pour le traitement de texte, la validation et l'extraction de données dans tous les langages de programmation. Les motifs regex se composent de caractères littéraux et de métacaractères spéciaux qui définissent des règles de recherche. Ils sont utilisés pour la validation de formulaires, l'analyse de logs, les opérations de recherche et remplacement, et les tâches de nettoyage de données.",
- heading2: "Comment utiliser cet outil",
- p2: "Saisissez votre motif regex dans le champ de saisie. L'outil génère automatiquement un diagramme ferroviaire visualisant la structure du motif. Ajoutez un texte de test pour voir la mise en évidence des correspondances et les explications en temps réel. Utilisez l'aide-mémoire pour une référence rapide sur les motifs et la syntaxe courants. Générez des extraits de code pour votre langage de programmation préféré.",
- heading3: "Cas d'utilisation courants",
- p3: "Validation d'e-mail pour s'assurer que la saisie utilisateur correspond au bon format avant traitement, analyse de logs pour extraire les horodatages et adresses IP des journaux serveur, nettoyage de données pour supprimer les caractères indésirables ou formater les numéros de téléphone de manière cohérente, et recherche/remplacement pour des transformations de texte en masse avec correspondance de motifs.",
- heading4: "Conseils de pro",
- p4: "Commencez simple et construisez des motifs complexes progressivement. Utilisez des groupes non capturants (?:) lorsque vous n'avez pas besoin de référencer la correspondance. Testez les cas limites comme les chaînes vides et les caractères spéciaux. Pensez à la lisibilité des regex — les motifs complexes peuvent être documentés avec des commentaires.",
- },
cheatsheet: {
title: "Référence rapide Regex",
h0: "Classes de caractères",
@@ -1323,16 +1201,6 @@ export default {
text1: "Copier",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "À propos des clés SSH",
- p1: "Les clés SSH sont une paire de clés cryptographiques utilisées pour l'authentification sécurisée sur des systèmes distants. La clé privée reste sur votre machine tandis que la clé publique est placée sur le serveur. Cette approche asymétrique est bien plus sécurisée que l'authentification par mot de passe et constitue la norme du secteur pour l'accès aux serveurs, l'hébergement Git et les déploiements automatisés.",
- heading2: "Comment utiliser cet outil",
- p2: "Sélectionnez le type de clé souhaité (RSA ou ECDSA) et, pour RSA, choisissez la taille de clé. Ajoutez un commentaire optionnel pour identifier la clé (généralement user@host). Cliquez sur Générer pour créer votre paire de clés. Copiez la clé publique à ajouter sur votre serveur et conservez la clé privée en sécurité sur votre machine locale.",
- heading3: "Cas d'utilisation courants",
- p3: "Authentification serveur pour une connexion SSH sans mot de passe vers des serveurs distants. Hébergement Git pour s'authentifier auprès de GitHub, GitLab ou Bitbucket sans mot de passe. Pipelines CI/CD pour les scripts de déploiement automatisé devant se connecter aux serveurs. Accès à un hôte bastion pour des configurations de rebond sécurisées.",
- heading4: "Conseils de pro",
- p4: "Les clés Ed25519 sont recommandées pour les nouveaux déploiements — elles sont plus rapides et plus sécurisées que RSA. Protégez toujours votre clé privée avec une phrase de passe forte. Utilisez ssh-agent pour éviter de saisir votre phrase de passe à répétition durant une session. Stockez les clés dans ~/.ssh/ avec les permissions définies à 600.",
- },
cheatsheet: {
title: "Référence rapide des clés SSH",
h0: "Types de clés",
@@ -1372,16 +1240,6 @@ export default {
tpl2: "Aucun nom alternatif du sujet présent.",
tpl3: "Aucune extension analysée.",
},
- edu: {
- heading1: "Que sont les certificats X.509 ?",
- heading2: "Comment utiliser cet outil",
- heading3: "Cas d'utilisation courants",
- heading4: "Conseils de pro",
- p1: "
X.509 est un format standard pour les certificats à clé publique, des documents numériques qui lient de manière sécurisée une clé publique à une identité (comme un site web, une organisation ou un individu). Ces certificats constituent le fondement de l'infrastructure à clé publique (PKI) utilisée pour sécuriser internet via HTTPS, ainsi que pour signer des e-mails et des logiciels.
Un certificat X.509 contient la clé publique, l'identité du détenteur du certificat, et la signature numérique de l'autorité de certification (CA) qui a émis le certificat, prouvant son authenticité.
",
- p2: "
Collez votre certificat : Copiez votre certificat encodé en PEM (avec les en-têtes BEGIN et END) et collez-le dans le champ de saisie.
Analysez : Cliquez sur \"Analyser le certificat\" pour extraire et analyser les données.
Consultez le résumé : Vérifiez les cartes en haut pour le nom commun (CN), l'émetteur et les dates de validité.
Inspectez les détails : Développez les sections ci-dessous pour voir l'intégralité du sujet, de l'émetteur, des SAN et des extensions techniques.
Vérifiez le statut : Consultez le badge de statut pour voir si le certificat est actuellement valide ou expiré.
",
- p3: "
Dépannage SSL/TLS : Diagnostiquer pourquoi un site web affiche un avertissement \"Non sécurisé\" en vérifiant l'expiration ou les incohérences de nom d'hôte.
Audit de sécurité : Vérifier qu'un certificat a été émis par une CA de confiance et utilise des algorithmes de signature forts (comme SHA-256).
Développement : Inspecter des certificats auto-signés ou des CSR (demandes de signature de certificat) pendant le développement local.
Gestion de l'infrastructure : Vérifier les noms alternatifs du sujet (SAN) pour s'assurer que tous les sous-domaines requis sont couverts par un seul certificat.
",
- p4: "
Vérifiez les SAN : Les navigateurs modernes s'appuient sur l'extension SAN (Subject Alternative Name) plutôt que sur le nom commun (CN) pour la vérification du nom d'hôte. Assurez-vous toujours que votre domaine figure dans les SAN.
Vérifiez la chaîne : Si un certificat est valide mais toujours non fiable, il peut manquer des certificats intermédiaires. Vérifiez l'\"Émetteur\" pour identifier quelle CA intermédiaire vous devez inclure sur votre serveur.
Empreintes pour le pinning : Utilisez l'empreinte SHA-256 fournie par cet outil si vous devez implémenter le certificate pinning dans des applications mobiles ou des API à haute sécurité.
",
- },
cheatsheet: {
title: "Référence des certificats X.509",
h0: "Champs du certificat",
@@ -1424,16 +1282,6 @@ export default {
text1: "Copier JSON",
text2: "Copier XML",
},
- edu: {
- heading1: "Qu'est-ce que SAML ?",
- p1: "Security Assertion Markup Language (SAML) est une norme ouverte basée sur XML pour l'échange de données d'authentification et d'autorisation entre parties, en particulier entre un fournisseur d'identité (IdP) et un fournisseur de services (SP). SAML constitue l'épine dorsale de nombreuses solutions de SSO (Single Sign-On) d'entreprise, permettant aux utilisateurs d'accéder à plusieurs applications avec un seul jeu d'identifiants. La version la plus courante est SAML 2.0, qui utilise des jetons de sécurité contenant des assertions pour transmettre des informations sur un principal entre l'IdP et le SP.",
- heading2: "Comment utiliser cet outil",
- p2: "Collez le SAMLResponse encodé en Base64 ou le XML brut dans le champ de saisie. Activez Tenter l'inflation si vous décodez un payload de liaison Redirect. Cliquez sur Décoder la réponse pour analyser le message. Consultez le résumé rapide pour l'émetteur, le sujet et le statut de validité. Consultez les attributs utilisateur décodés dans le tableau Attributs. Utilisez les onglets pour voir le XML formaté, les détails de l'assertion, ou une représentation JSON des claims.",
- heading3: "Cas d'utilisation courants",
- p3: "Dépannage SSO en diagnostiquant pourquoi un utilisateur ne peut pas se connecter, en vérifiant les assertions expirées ou les incohérences d'audience. Tests d'intégration pour vérifier que votre fournisseur d'identité envoie les bons attributs. Audit de sécurité pour inspecter le XML brut et s'assurer que les assertions sont correctement signées. Développement pour consulter rapidement le contenu d'un message SAML lors de l'intégration d'un fournisseur de services.",
- heading4: "Conseils de pro",
- p4: "Les messages SAML envoyés via HTTP-Redirect sont généralement compressés (deflate) avant l'encodage Base64 — si votre décodage échoue, essayez d'activer la case Tenter l'inflation. Assurez-vous que l'AudienceRestriction correspond à votre Entity ID de SP. Si une réponse est marquée invalide, vérifiez les horaires NotBefore et NotOnOrAfter pour un éventuel décalage d'horloge entre l'IdP et le SP.",
- },
cheatsheet: {
title: "Référence rapide SAML",
h0: "Flux SAML",
@@ -1476,16 +1324,6 @@ export default {
alert1: "Veuillez saisir une chaîne User-Agent",
tpl2: "Sortie brute de l'analyse",
},
- edu: {
- heading1: "Qu'est-ce qu'un User-Agent ?",
- p1: "Un User-Agent est une chaîne envoyée par votre navigateur à chaque site que vous visitez. Elle identifie la version du navigateur, le système d'exploitation et le type d'appareil, permettant aux serveurs d'optimiser le contenu pour votre environnement spécifique.",
- heading2: "Comment utiliser cet outil",
- p2: "Collez une chaîne User-Agent dans le champ de saisie ou cliquez sur Utiliser ceci pour analyser la chaîne de votre navigateur actuel. L'outil détaillera le moteur du navigateur, la version du système d'exploitation et les caractéristiques de l'appareil.",
- heading3: "Cas d'utilisation courants",
- p3: "Déboguer des problèmes de compatibilité de site web, analyser les logs de serveur web pour identifier le trafic de bots, vérifier l'usurpation de navigateur, et comprendre la répartition des appareils dans votre audience.",
- heading4: "Conseils de pro",
- p4: "De nombreux navigateurs modernes figent ou simplifient leur chaîne User-Agent pour empêcher le fingerprinting. Recherchez toujours les jetons Version ou Chrome pour obtenir les informations de version les plus précises.",
- },
},
"qr-code": {
name: "Générateur de Codes QR",
@@ -1524,16 +1362,6 @@ export default {
alert3: "Copié !",
tpl4: "Téléversez une image à décoder",
},
- edu: {
- heading1: "Que sont les codes QR ?",
- p1: "Les codes QR (Quick Response) sont des codes-barres bidimensionnels capables de stocker divers types de données, le plus souvent des URL. Ils peuvent être scannés par des smartphones et des lecteurs spécialisés pour accéder rapidement à des informations ou déclencher des actions.",
- heading2: "Comment utiliser cet outil",
- p2: "Saisissez le texte ou l'URL que vous souhaitez encoder. Ajustez la taille et le niveau de correction d'erreur si nécessaire. Le code QR se met à jour en temps réel et peut être téléchargé sous forme d'image pour un usage imprimé ou numérique.",
- heading3: "Cas d'utilisation courants",
- p3: "Partage de liens de site web, fourniture d'identifiants Wi-Fi, cartes de visite numériques (vCards), billetterie d'événements, et flux de paiement mobile ou d'authentification.",
- heading4: "Conseils de pro",
- p4: "Des niveaux de correction d'erreur plus élevés (H ou Q) permettent au code QR de rester scannable même s'il est partiellement endommagé ou masqué, ce qui est idéal pour la signalétique physique ou le branding.",
- },
},
"timestamp-converter": {
name: "Convertisseur d'Horodatage",
@@ -1564,16 +1392,6 @@ export default {
text0: "Horodatage invalide",
tpl1: "Unix (millisecondes)",
},
- edu: {
- heading1: "Qu'est-ce que l'heure Unix ?",
- p1: "L'heure Unix (également connue comme heure Epoch, heure POSIX ou horodatage Unix) est un système pour décrire un moment dans le temps. C'est le nombre de secondes écoulées depuis l'Epoch Unix, moins les secondes intercalaires ; l'Epoch Unix est le 00:00:00 UTC du 1er janvier 1970. Il est largement utilisé dans les systèmes d'exploitation et les formats de fichiers car c'est un seul entier, ce qui facilite son stockage et sa manipulation par les ordinateurs. Ce standard permet à différents systèmes de communiquer le temps avec précision quel que soit leur fuseau horaire local.",
- heading2: "Comment utiliser cet outil",
- p2: "Pour convertir Unix en Humain : Saisissez l'horodatage dans le champ Horodatage Unix et sélectionnez s'il est en secondes ou millisecondes. Pour convertir Humain en Unix : Sélectionnez la date et l'heure à l'aide des sélecteurs, puis choisissez votre fuseau horaire souhaité. Utilisez le bouton Maintenant pour obtenir rapidement l'horodatage actuel. Consultez les résultats en temps réel, incluant ISO 8601, Heure locale, UTC et heure relative. Cliquez sur le bouton Copier à côté de n'importe quel résultat pour le sauvegarder dans votre presse-papiers.",
- heading3: "Cas d'utilisation courants",
- p3: "Analyse de journaux pour convertir des horodatages cryptiques trouvés dans des journaux de serveur ou des entrées de base de données en dates lisibles pour le débogage. Développement d'API pour vérifier que votre backend envoie les valeurs d'époque correctes. Migration de données pour s'assurer que les données temporelles restent cohérentes lors du déplacement entre systèmes. Planification pour calculer des horodatages futurs ou passés pour les tâches cron, les dates d'expiration ou les déclencheurs d'événements.",
- heading4: "Conseils de pro",
- p4: "Lorsque vous travaillez avec JavaScript, rappellez-vous que Date.now() retourne des millisecondes, tandis que les horodatages Unix standard sont en secondes — divisez par 1000 pour convertir. Utilisez toujours le format ISO 8601 pour l'échange de données entre systèmes pour garantir une compatibilité maximale. Soyez conscient du problème de l'an 2038 où les entiers signés 32 bits déborderont ; les systèmes modernes utilisent des entiers 64 bits qui résolvent cela pour l'avenir prévisible.",
- },
},
"color-converter": {
name: "Convertisseur de Couleurs",
@@ -1589,16 +1407,6 @@ export default {
badge7: "Côté client uniquement",
badge8: "Confidentialité avant tout",
},
- edu: {
- heading1: "Les modèles de couleur expliqués (HEX/RGB/HSL)",
- heading2: "Comment utiliser cet outil",
- heading3: "Cas d'utilisation courants",
- heading4: "Conseils de pro",
- p1: "
Les modèles de couleur sont des systèmes mathématiques pour représenter les couleurs. HEX (Hexadécimal) est un code à 6 chiffres utilisé en HTML et CSS, représentant les composantes Rouge, Vert et Bleu. RGB (Rouge, Vert, Bleu) utilise des valeurs décimales de 0 à 255 pour chaque canal, souvent utilisé en imagerie numérique.
HSL (Teinte, Saturation, Luminosité) est plus intuitif pour les humains, car il décrit la couleur en termes de son pigment de base (Teinte), d'intensité (Saturation) et de luminosité (Luminosité). Comprendre ces modèles aide à choisir le bon format pour vos besoins de conception et de développement, assurant la cohérence sur différentes plateformes et appareils.
",
- p2: "
Utilisez le sélecteur de couleur visuel pour sélectionner une couleur en faisant glisser le curseur dans le carré de saturation/luminosité et le curseur de teinte.
Alternativement, saisissez une valeur spécifique dans le champ \"Saisie manuelle\" (prend en charge les formats #hex, rgb ou hsl).
Observez la boîte \"Aperçu\" pour voir la couleur sélectionnée en temps réel.
Consultez les valeurs converties dans les cartes HEX, RGB, HSL et HSV ci-dessous.
Cliquez sur l'icône \"Copier\" sur n'importe quelle carte pour sauvegarder ce format spécifique dans votre presse-papiers.
",
- p3: "
Design web : Convertir les couleurs des outils de design (souvent RGB/HSL) en codes HEX pour les feuilles de style CSS.
Cohérence de marque : S'assurer que les couleurs de votre marque sont représentées avec précision dans différents formats numériques et médias.
Développement UI : Générer rapidement des variations plus claires ou plus sombres d'une couleur de base en ajustant la valeur de Luminosité en HSL.
Tests d'accessibilité : Utiliser l'aperçu pour vérifier si les couleurs choisies offrent suffisamment de contraste pour un texte lisible et des éléments UI.
",
- p4: "
Utilisez HSL lors de la conception de composants UI comme les boutons, car il est facile de créer des états de survol en ajustant simplement la valeur de luminosité.
Lorsque vous travaillez avec la transparence en CSS, préférez rgba() ou hsla() pour une meilleure lisibilité et un meilleur contrôle sur le canal alpha.
Vérifiez toujours les ratios de contraste des couleurs pour vous assurer que vos conceptions sont accessibles aux utilisateurs malvoyants.
",
- },
},
"unit-converter": {
name: "Convertisseur d'Unités",
@@ -1616,16 +1424,6 @@ export default {
text0: "Sélectionnez des unités pour voir la formule de conversion",
text1: "Saisissez un nombre valide",
},
- edu: {
- heading1: "Aperçu des systèmes de mesure",
- p1: "Les systèmes de mesure sont des collections d'unités de mesure et de règles les reliant entre elles. Les deux systèmes les plus courants sont le Système Métrique (Système International d'Unités ou SI) et le Système Impérial. Le système métrique est basé sur les puissances de dix, ce qui le rend très logique et facile à mettre à l'échelle. Le système impérial, principalement utilisé aux États-Unis, utilise des unités comme les pouces, les pieds et les livres qui ont des origines historiques et des facteurs de conversion moins uniformes. Comprendre les différences entre ces systèmes est essentiel pour la science, l'ingénierie, le commerce international et les tâches quotidiennes comme la cuisine ou les voyages.",
- heading2: "Comment utiliser cet outil",
- p2: "Sélectionnez la catégorie de mesure (ex. : Longueur, Poids, Température) dans la grille en haut. Choisissez l'unité à partir de laquelle vous souhaitez convertir dans le menu déroulant De. Entrez la valeur que vous souhaitez convertir dans le champ de saisie. Sélectionnez l'unité cible dans le menu déroulant Vers. La valeur convertie apparaîtra instantanément avec la formule mathématique utilisée pour la conversion.",
- heading3: "Cas d'utilisation courants",
- p3: "Voyage pour convertir des distances de kilomètres en miles ou des températures de Celsius en Fahrenheit. Cuisine pour traduire des recettes entre mesures métriques (grammes/millilitres) et impériales (onces/tasses). Ingénierie et science pour des conversions précises entre différentes unités de pression, d'énergie ou de vitesse. Stockage numérique pour comprendre la différence entre Mégaoctets, Gigaoctets et Téraoctets.",
- heading4: "Conseils de pro",
- p4: "Utilisez le bouton Échanger pour inverser rapidement la direction de conversion entre vos unités sélectionnées. Vérifiez toujours le type d'unité spécifique, surtout pour le volume et le poids, car les noms peuvent être similaires dans différents systèmes comme les gallons américains vs. britanniques. Lors d'une série de conversions multiples, conservez autant de décimales que possible jusqu'au résultat final pour éviter les erreurs d'arrondi cumulées.",
- },
},
"yaml-toml-converter": {
name: "Convertisseur YAML/TOML",
@@ -1659,16 +1457,6 @@ export default {
text6: "⚠️ Échec de la conversion TOML :",
tpl7: "En attente de conversion.",
},
- edu: {
- heading1: "Comparaison YAML vs TOML vs JSON",
- p1: "JSON est le format le plus utilisé pour l'échange de données grâce à sa simplicité et à sa prise en charge native en JavaScript. YAML (YAML Ain't Markup Language) est une norme de sérialisation de données conviviale qui utilise l'indentation pour représenter la structure, ce qui la rend populaire pour les fichiers de configuration complexes. TOML (Tom's Obvious, Minimal Language) est conçu pour être facile à lire et à écrire grâce à sa sémantique évidente, et est souvent utilisé pour la configuration de projets. Alors que JSON est strict et compact, YAML et TOML privilégient la lisibilité humaine et la facilité d'édition manuelle.",
- heading2: "Comment utiliser cet outil",
- p2: "Collez vos données de configuration (JSON, YAML ou TOML) dans la zone de texte source à gauche. L'outil détecte automatiquement le format source, ou vous pouvez le sélectionner manuellement dans le menu déroulant. Cliquez sur Valider uniquement pour vérifier les erreurs de syntaxe sans effectuer de conversion. Cliquez sur l'un des boutons de conversion (vers JSON, vers YAML, vers TOML) pour convertir vos données dans ce format. Consultez les résultats dans les panneaux de sortie à droite et cliquez sur Copier pour les enregistrer dans votre presse-papiers.",
- heading3: "Cas d'utilisation courants",
- p3: "Infrastructure as Code pour convertir entre JSON et YAML lors du travail avec des manifestes Kubernetes, des fichiers Docker Compose ou des modèles AWS CloudFormation. Configuration de projet pour migrer des paramètres entre package.json (JSON) et pyproject.toml ou Cargo.toml (TOML). Prototypage d'API pour visualiser rapidement à quoi ressemble une structure de données complexe dans différents formats. Migration héritée pour convertir d'anciens fichiers de configuration vers des formats modernes tout en garantissant l'intégrité des données.",
- heading4: "Conseils de pro",
- p4: "Utilisez YAML pour les pipelines CI/CD où la lisibilité des structures imbriquées complexes est essentielle à la maintenabilité. Préférez TOML pour les fichiers de configuration au niveau applicatif afin d'offrir une interface propre aux utilisateurs finaux qui pourraient devoir les modifier manuellement. Lors de la conversion de YAML vers JSON, soyez attentif aux problèmes de coercition de type de YAML (où NO peut être interprété comme false) et assurez-vous que vos types de données sont préservés correctement.",
- },
cheatsheet: {
title: "Comparaison des formats",
h0: "Différences de syntaxe",
@@ -1719,16 +1507,6 @@ export default {
text1: "Copier",
text2: "Copié !",
},
- edu: {
- heading1: "Qu'est-ce que htpasswd ?",
- p1: "
Le fichier htpasswd est une base de données à plat utilisée pour stocker des noms d'utilisateur et des mots de passe hachés pour l'authentification basique sur les serveurs web Apache et Nginx. C'est un moyen simple mais efficace de protéger des répertoires spécifiques ou des panneaux d'administration d'un site web sans avoir besoin d'un système d'authentification complet basé sur une base de données.
Chaque ligne d'un fichier htpasswd représente un seul utilisateur et suit le format username:hashed_password.
",
- heading2: "Comment utiliser cet outil",
- p2: "
Saisissez le nom d'utilisateur : Tapez le nom d'utilisateur que vous souhaitez utiliser pour l'authentification.
Fournissez un mot de passe : Saisissez un mot de passe ou cliquez sur Générer un mot de passe fort pour en créer un sécurisé.
Sélectionnez l'algorithme : Choisissez Bcrypt (-B) pour une sécurité moderne ou Apache MD5 (-m) pour la compatibilité héritée.
Générez : Cliquez sur Générer l'entrée pour créer la chaîne hachée.
Copiez ou téléchargez : Copiez la ligne résultante dans votre presse-papiers ou téléchargez-la sous forme de fichier à envoyer sur votre serveur.
Panneaux d'administration : Protéger des zones sensibles comme /admin ou /wp-admin avec une couche de sécurité supplémentaire au niveau serveur.
Sites de préproduction : Restreindre l'accès aux environnements de développement ou de préproduction pour qu'ils ne soient pas indexés par les moteurs de recherche ni consultés par le public.
Dépôts privés : Sécuriser des dépôts Git ou SVN locaux servis via HTTP.
Passerelles API : Mettre en place une authentification simple pour des microservices internes ou des API héritées.
",
- heading4: "Conseils de pro",
- p4: "
Utilisez toujours Bcrypt : Bcrypt est délibérément lent et utilise un facteur de coût pour résister aux attaques par force brute. Il est nettement plus sécurisé que les anciennes options MD5 ou SHA1.
Sécurisez le fichier : Nommez votre fichier .htpasswd (avec un point en préfixe) et stockez-le en dehors de votre répertoire racine web pour empêcher son téléchargement.
HTTPS est obligatoire : L'authentification basique envoie les identifiants dans un format facilement réversible. Ne l'utilisez jamais via du HTTP non chiffré ; assurez-vous toujours que votre site est servi via HTTPS.
",
- },
},
"mock-data-generator": {
name: "Générateur de Données Fictives",
@@ -1762,16 +1540,6 @@ export default {
text1: "Copier",
text2: "Aucune ligne à prévisualiser.",
},
- edu: {
- heading1: "Qu'est-ce que les données simulées ?",
- p1: "
Les données simulées sont des informations synthétiques qui imitent les données du monde réel sans contenir d'informations sensibles ou d'identification personnelle (PII). Elles sont essentielles pour les développeurs et les testeurs qui ont besoin de jeux de données réalistes pour construire et valider des applications sans risquer de violations de données ou d'enfreindre des réglementations sur la vie privée comme le RGPD ou la CCPA. En utilisant des données simulées, vous pouvez simuler divers scénarios, des profils d'utilisateurs standard aux cas limites, en veillant à ce que votre logiciel gère tous les types d'entrées avec élégance.
",
- heading2: "Stratégies de test",
- p2: "
Des tests efficaces nécessitent des jeux de données diversifiés. Utilisez des données simulées pour amorcer vos bases de données de développement, effectuer des tests de charge avec des milliers d'enregistrements ou vérifier les mises en page UI avec des longueurs de chaînes variables. C'est particulièrement utile pour les tests d'intégration où vous avez besoin de réponses prévisibles d'APIs externes. En générant des données localement, vous pouvez créer des environnements de test cohérents faciles à réinitialiser et à reproduire, conduisant à des cycles de développement plus fiables et plus rapides.
",
- heading3: "Confidentialité des données dans les simulations",
- p3: "
Cohérence : Lors de la génération de plusieurs jeux de données liés, utilisez des seeds ou des modèles fixes pour maintenir l'intégrité référentielle entre les tables.
Cas limites : Incluez des chaînes vides, des noms très longs et des caractères spéciaux pour tester la robustesse de votre application.
Changement de format : Utilisez l'export SQL pour l'amorçage rapide de bases de données et CSV pour l'analyse de tableurs ou les importations en masse.
Automatisation : Les modèles utilisés par cet outil peuvent être intégrés dans vos pipelines CI/CD automatisés pour des tests continus.
Les conventions de nommage sont des ensembles de règles pour choisir la séquence de caractères utilisée pour les identifiants désignant les variables, types, fonctions et autres entités dans le code source et la documentation. camelCase (ex. myVariable) commence par une minuscule et met une majuscule à la première lettre de chaque mot suivant. snake_case (ex. my_variable) utilise des underscores pour séparer les mots.
PascalCase (ex. MyVariable) met une majuscule à la première lettre de chaque mot, tandis que kebab-case (ex. my-variable) utilise des tirets pour séparer les mots. Ces conventions ne sont pas qu'une question d'esthétique ; elles sont essentielles pour la lisibilité du code, sa maintenabilité, et le respect des standards idiomatiques des différents langages de programmation et frameworks.
",
- p2: "
Tapez ou collez votre texte dans la zone \"Texte d'entrée\" en haut de la page.
L'outil convertit automatiquement votre saisie en plus d'une douzaine de styles de casse différents en temps réel.
Parcourez la grille \"Résultats de conversion\" pour trouver le style de casse dont vous avez besoin.
Cliquez sur l'icône \"Copier\" à côté de n'importe quel résultat pour l'enregistrer dans votre presse-papiers.
Utilisez le bouton \"Effacer\" pour supprimer toute la saisie et démarrer une nouvelle conversion.
",
- p3: "
Refactorisation de code : Convertir rapidement les noms de variables lors de la migration de code entre langages avec des standards différents (ex. camelCase de Java vers snake_case de Python).
Développement web : Transformer du texte en kebab-case pour les noms de classes CSS ou les slugs d'URL afin d'obtenir des identifiants valides et adaptés au SEO.
Conception de base de données : Convertir des identifiants camelCase au niveau applicatif en snake_case pour les noms de tables et colonnes de base de données.
Création de contenu : Utiliser Title Case ou Sentence case pour formater rapidement les titres et le corps de texte des articles ou de la documentation.
",
- p4: "
Soyez cohérent au sein de votre projet ; même si vous préférez un style, suivez toujours la convention existante de la base de code sur laquelle vous travaillez.
Utilisez des noms descriptifs qui véhiculent du sens, plutôt que de simplement suivre la convention de casse (ex. isUserLoggedIn est préférable à status).
Lorsque vous travaillez avec des API, soyez prêt à convertir entre les casses, car les systèmes backend utilisent souvent snake_case tandis que les frontends préfèrent camelCase.
",
- },
},
"code-minifier": {
name: "Minificateur de Code",
@@ -1913,16 +1671,6 @@ export default {
text2: "📋 Copier",
tpl3: "Tout le traitement s'effectue dans votre navigateur. Votre code est traité localement et n'est jamais envoyé à nos serveurs.",
},
- edu: {
- heading1: "Qu'est-ce que la minification ?",
- heading2: "Comment utiliser cet outil",
- heading3: "Cas d'utilisation courants",
- heading4: "Conseils de pro",
- p1: "
La minification consiste à supprimer tous les caractères inutiles du code source sans en changer le fonctionnement. Cela inclut la suppression des espaces, des sauts de ligne, des commentaires, et parfois le raccourcissement des noms de variables. L'objectif est de réduire la taille du fichier de code, ce qui réduit à son tour la quantité de données à transférer sur le réseau.
Cela conduit à des temps de chargement de page plus rapides et à de meilleures performances pour les applications web. Bien que la minification soit essentielle pour les environnements de production, elle rend le code presque impossible à lire et à déboguer pour un humain. Elle est donc généralement effectuée comme étape finale du processus de build avant le déploiement sur un serveur de production.
",
- p2: "
Sélectionnez le langage de programmation (JavaScript, CSS, HTML ou JSON) dans les onglets en haut.
Collez votre code source dans la zone de texte \"Code d'entrée\" à gauche.
Cliquez sur le bouton \"Minifier le code\" pour réduire la taille du fichier pour un usage en production.
Vous pouvez aussi cliquer sur \"Embellir le code\" pour ajouter indentation et formatage afin d'améliorer la lisibilité.
Consultez les résultats dans la zone \"Code de sortie\" et cliquez sur \"Copier\" ou \"Télécharger\" pour enregistrer votre code optimisé.
",
- p3: "
Déploiement en production : Minifiez vos fichiers JS et CSS avant de les envoyer sur votre serveur web pour améliorer la vitesse du site et le SEO.
Modèles d'e-mails : Minifiez le code HTML des e-mails pour rester sous les limites de taille des différents clients de messagerie et charger rapidement pour les destinataires.
Réponses API : Minifiez les données JSON avant de les envoyer depuis votre serveur pour réduire l'utilisation de bande passante et les coûts de sortie.
Audit de code : Utilisez l'embellisseur pour formater du code désordonné ou minifié trouvé en ligne afin de comprendre son fonctionnement.
",
- p4: "
Conservez toujours votre code source original, non minifié, pour le développement, et n'utilisez la version minifiée que pour le déploiement en production.
Utilisez les Source Maps pour combler l'écart entre le code de production minifié et le code de développement lisible, permettant un débogage efficace dans le navigateur.
Combinez la minification avec une compression Gzip ou Brotli sur votre serveur pour une réduction maximale de la taille des fichiers et du temps de transfert.
",
- },
},
"image-converter": {
name: "Convertisseur d'Images",
@@ -1969,16 +1717,6 @@ export default {
alert2: "Erreur de lecture du fichier.",
tpl3: "Traitement côté client via l'API Canvas — aucun envoi, résultats instantanés",
},
- edu: {
- heading1: "Comparaison des formats d'image (PNG/JPEG/WebP)",
- p1: "
Choisir le bon format d'image est essentiel pour la performance web et la qualité visuelle. JPEG convient le mieux aux photographies et aux images complexes avec de nombreuses couleurs, car il utilise une compression avec perte pour obtenir des fichiers légers. PNG est idéal pour les images nécessitant de la transparence ou ayant des contours nets et des couleurs unies (comme les logos et icônes), car il utilise une compression sans perte.
WebP est un format moderne offrant une compression supérieure, avec ou sans perte, produisant souvent des fichiers nettement plus légers que JPEG ou PNG tout en conservant une haute qualité.
",
- heading2: "Comment utiliser cet outil",
- p2: "
Téléversez votre image en la déposant dans la zone Téléverser une image ou en cliquant pour parcourir vos fichiers.
Sélectionnez le format de sortie souhaité (PNG, JPG ou WebP) dans les options Convertir le format.
Si vous avez choisi un format avec perte comme JPG ou WebP, utilisez le curseur de qualité pour équilibrer taille de fichier et fidélité visuelle.
Optionnellement, utilisez les paramètres Redimensionner l'image pour ajuster votre image par pourcentage ou dimensions spécifiques.
Cliquez sur Convertir et redimensionner l'image puis sur Télécharger pour enregistrer votre fichier optimisé.
Optimisation web : Convertissez de grandes images PNG ou JPEG en WebP pour améliorer la vitesse de chargement de votre site et vos Core Web Vitals.
Réseaux sociaux : Redimensionnez et compressez les photos pour répondre aux exigences spécifiques de plateformes comme Instagram, Twitter ou LinkedIn.
Email marketing : Réduisez la taille des images dans vos campagnes d'e-mails pour garantir un chargement rapide pour tous les destinataires.
Développement d'applications : Générez plusieurs tailles d'une même icône ou ressource pour différentes densités d'écran grâce aux fonctions de redimensionnement.
",
- heading4: "Conseils de pro",
- p4: "
Utilisez WebP autant que possible pour les projets web, car il est pris en charge par tous les navigateurs modernes et offre le meilleur ratio compression/qualité.
Lors de la conversion en JPEG, un réglage de qualité de 70-80% offre généralement le meilleur équilibre entre taille de fichier et qualité visuelle pour la plupart des usages web.
Conservez toujours vos images originales en haute résolution et ne convertissez ou redimensionnez que des copies pour des usages spécifiques, afin d'éviter une perte de qualité au fil du temps due aux compressions répétées.
",
- },
},
"css-gradient": {
name: "Générateur de Dégradés CSS",
@@ -2018,16 +1756,6 @@ export default {
alert2: "Échec de la copie du CSS dans le presse-papiers",
tpl3: "Écrans de chargement et superpositions",
},
- edu: {
- heading1: "Que sont les dégradés CSS ?",
- heading2: "Dégradés linéaires vs radiaux vs coniques",
- heading3: "Support navigateur et performance",
- heading4: "Conseils de pro pour de meilleurs dégradés",
- p1: "
Les dégradés CSS sont une fonctionnalité puissante permettant d'afficher des transitions fluides entre deux couleurs ou plus. Contrairement aux images d'arrière-plan traditionnelles, les dégradés sont générés par le navigateur, ce qui les rend infiniment redimensionnables, moins gourmands en bande passante, et facilement manipulables par le code. Ils sont couramment utilisés pour les arrière-plans, boutons et éléments décoratifs afin d'ajouter de la profondeur et un intérêt visuel aux designs web.
",
- p2: "
Il existe trois principaux types de dégradés CSS :
Dégradés linéaires : Les couleurs transitionnent le long d'une ligne droite. Vous pouvez contrôler la direction avec des angles (ex. 45deg) ou des mots-clés (ex. to right).
Dégradés radiaux : Les couleurs rayonnent depuis un point central (l'\"origine\"). Vous pouvez spécifier la forme (cercle ou ellipse) et la position du centre.
Dégradés coniques : Les couleurs transitionnent autour d'un point central, comme un diagramme circulaire ou une roue chromatique. Moins courants, ils sont parfaits pour créer des motifs uniques et des éléments d'interface.
",
- p3: "
Les dégradés CSS modernes sont largement pris en charge par tous les principaux navigateurs, dont Chrome, Firefox, Safari et Edge. Comme ils sont rendus mathématiquement par le moteur du navigateur, ils sont extrêmement performants comparés à des images haute résolution. Cependant, pour des dégradés très complexes avec des dizaines de points de couleur, il est toujours conseillé de tester les performances sur des appareils moins puissants. Pour les anciens navigateurs (comme IE9 et antérieurs), il est recommandé de fournir une couleur unie en repli.
",
- p4: "
Évitez les \"zones mortes grises\" : Lors d'une transition entre deux couleurs éloignées, le point médian peut parfois paraître terne ou grisâtre. Ajouter un point de couleur intermédiaire vif permet de garder un dégradé éclatant.
Privilégiez les transitions subtiles : Souvent, les meilleurs dégradés sont ceux que l'on remarque à peine. Utiliser des couleurs proches sur la roue chromatique crée un rendu sophistiqué et professionnel.
Superposition : Vous pouvez empiler plusieurs dégradés à l'aide de la propriété background-image, permettant des effets incroyablement complexes et artistiques.
Accessibilité : Assurez-vous que tout texte placé sur un dégradé dispose d'un contraste suffisant. Utilisez des outils pour vérifier la conformité WCAG de toutes les combinaisons de couleurs.
Les informations personnellement identifiables (PII) sont toute donnée pouvant être utilisée pour identifier un individu spécifique. Cela inclut les identifiants directs comme les noms, adresses e-mail et numéros de téléphone, ainsi que les identifiants indirects comme les adresses IP, les localisations physiques et les numéros de carte bancaire. Dans le contexte des logs serveur, les PII apparaissent souvent dans les paramètres de requête, les en-têtes ou les messages d'erreur.
Protéger les PII est un aspect essentiel de la sécurité des données moderne et est exigé par divers cadres juridiques à travers le monde.
",
- heading2: "Exigences de conformité (RGPD/CCPA)",
- p2: "
Des réglementations comme le Règlement Général sur la Protection des Données (RGPD) en Europe et le California Consumer Privacy Act (CCPA) aux États-Unis imposent des règles strictes sur le traitement des données personnelles. Ces lois exigent des organisations qu'elles mettent en œuvre le privacy by design et qu'elles minimisent la collecte et le stockage des données personnelles.
Partager des logs bruts contenant des PII avec des équipes de support tierces ou des développeurs peut entraîner des violations de conformité. Masquer ou rédiger ces données avant qu'elles ne quittent votre environnement sécurisé est une étape clé pour maintenir la conformité réglementaire.
",
- heading3: "Stratégies de masquage",
- p3: "
Il existe plusieurs façons de gérer les données sensibles dans les logs :
Rédaction : Remplacer la valeur sensible par un espace réservé générique comme [EMAIL_REDACTED]. C'est l'approche la plus courante pour partager des logs.
Anonymisation : Transformer les données de manière irréversible pour que l'individu ne puisse plus être identifié.
Pseudonymisation : Remplacer les identifiants par un alias cohérent (comme un hash) afin de pouvoir toujours corréler les événements sans connaître l'identité de l'utilisateur.
Notre outil se concentre sur la rédaction, en utilisant la correspondance de motifs pour trouver et remplacer instantanément les formats de PII courants.
",
- heading4: "Conseils de pro",
- p4: "
Utilisez le champ Mots-clés personnalisés pour rédiger des identifiants internes comme des clés API, jetons de session, ou noms de projets propriétaires non couverts par les motifs standards.
Effectuez toujours le masquage localement (comme le fait cet outil) pour garantir que les données sensibles ne transitent jamais par un serveur tiers pendant le processus de nettoyage.
Si vous corrélez des logs à travers plusieurs systèmes, envisagez d'utiliser un sel cohérent avec un outil de hachage plutôt qu'une simple rédaction, afin de conserver la traçabilité.
Auditez régulièrement le code de votre application pour éviter que les PII ne soient enregistrées dès le départ ; enregistrer à la source est la meilleure défense.
",
- },
},
"mermaid-studio": {
name: "Studio Mermaid",
@@ -2306,16 +2024,6 @@ export default {
text51: "Aucune URL extraite pour le moment.",
text52: "Aucune donnée de routage pour le moment.",
},
- edu: {
- heading1: "Authentification des e-mails expliquée",
- heading2: "SPF/DKIM/DMARC",
- heading3: "Détection de phishing",
- heading4: "Conseils de pro",
- p1: "
L'authentification des e-mails regroupe un ensemble de techniques permettant de fournir des informations vérifiables sur l'origine d'un message. En validant l'identité de l'expéditeur, ces protocoles aident les serveurs de messagerie à distinguer les messages légitimes des messages usurpés ou frauduleux (comme le phishing). Les trois piliers de l'authentification moderne des e-mails sont SPF, DKIM et DMARC.
Lorsqu'un e-mail est reçu, le serveur destinataire effectue ces vérifications et enregistre les résultats dans les en-têtes de l'e-mail, que cet outil analyse pour vous.
",
- p2: "
SPF (Sender Policy Framework) : Un mécanisme basé sur le DNS qui liste les adresses IP et domaines autorisés à envoyer des e-mails pour le compte de votre domaine.
DKIM (DomainKeys Identified Mail) : Ajoute une signature numérique à l'e-mail, permettant au destinataire de vérifier que le message a bien été envoyé par le propriétaire du domaine et n'a pas été altéré en transit.
DMARC (Domain-based Message Authentication, Reporting, and Conformance) : Relie SPF et DKIM. Il indique au destinataire quoi faire si l'authentification échoue (par ex. \"none\", \"quarantine\" ou \"reject\") et permet aux destinataires de faire un rapport à l'expéditeur.
",
- p3: "
Les e-mails de phishing utilisent souvent l'\"usurpation\" pour sembler provenir d'une source fiable. Notre analyseur recherche les signaux d'alerte courants, comme une incohérence entre l'adresse \"From\" (ce que voit l'utilisateur) et le \"Return-Path\" (d'où vient réellement le courrier). Nous extrayons et analysons également les URL dans le corps de l'e-mail pour identifier les liens suspects, comme ceux utilisant le Punycode (domaines similaires trompeurs) ou des adresses IP au lieu de noms d'hôte.
En consultant la section \"Résultats\", vous pouvez rapidement identifier ces signaux et déterminer si un e-mail est sûr.
",
- p4: "
Vérifiez toujours d'abord l'en-tête \"Authentication-Results\" ; il fournit le résultat définitif des vérifications de sécurité effectuées par votre fournisseur de messagerie.
Utilisez l'option \"Masquer les PII\" lors du partage de rapports avec d'autres personnes pour protéger les adresses e-mail et informations IP sensibles.
Portez une attention particulière à l'en-tête \"Reply-To\" ; s'il diffère de l'adresse \"From\", cela peut indiquer une attaque de type Business Email Compromise (BEC).
Consultez les \"Sauts de routage\" pour voir le trajet emprunté par l'e-mail ; un chemin anormalement long ou complexe à travers des serveurs inconnus peut être le signe d'un abus de relais.
",
- },
cheatsheet: {
title: "Référence rapide de l'authentification e-mail",
h0: "Signification de ces vérifications",
@@ -2491,16 +2199,6 @@ export default {
text9: "Collez d'abord du SQL.",
text10: "✓ Copié",
},
- edu: {
- heading1: "Pourquoi formater le SQL ?",
- p1: "Le SQL peut rapidement devenir complexe et difficile à lire, en particulier avec de multiples jointures, sous-requêtes et conditions imbriquées. Formater le SQL consiste à ajouter une indentation cohérente, des sauts de ligne et une capitalisation des mots-clés. Cela rend la logique de la requête beaucoup plus facile à suivre, ce qui est essentiel pour le débogage, les revues de code et la maintenance de grands schémas de base de données au fil du temps. Une requête bien formatée est également moins sujette aux erreurs logiques lors des modifications manuelles.",
- heading2: "Comment utiliser cet outil",
- p2: "Collez votre requête SQL brute dans l'éditeur SQL d'entrée à gauche. Sélectionnez votre dialecte de base de données (Postgres ou MySQL) et la casse de mots-clés préférée (MAJUSCULES ou minuscules). Cliquez sur le bouton Formater pour embellir votre requête avec une indentation et un espacement appropriés. Utilisez le bouton Valider pour vérifier les problèmes structurels courants comme des guillemets non fermés ou des parenthèses déséquilibrées. Cliquez sur Copier pour enregistrer le SQL formaté dans votre presse-papiers ou sur Effacer pour recommencer.",
- heading3: "Cas d'utilisation courants",
- p3: "Revues de code pour formater du SQL désordonné avant de soumettre une pull request. Débogage pour nettoyer les requêtes générées par les ORM afin de comprendre exactement ce qui est exécuté sur votre base de données. Documentation pour créer des exemples clairs et lisibles pour des guides techniques, wikis ou fichiers README. Nettoyage de code hérité pour refactoriser rapidement d'anciens scripts non formatés dans un style moderne et lisible.",
- heading4: "Conseils de pro",
- p4: "Utilisez des Common Table Expressions (CTE) avec la clause WITH pour décomposer des requêtes complexes en parties plus petites et gérables. Utilisez toujours des alias descriptifs pour les tables et colonnes afin de rendre l'intention de votre requête claire. Utilisez le bouton Minifier si vous devez compresser votre SQL sur une seule ligne pour l'utiliser dans des fichiers de configuration ou des outils en ligne de commande.",
- },
cheatsheet: {
title: "Astuces de formatage SQL",
h0: "Gains rapides",
@@ -2569,16 +2267,6 @@ export default {
text15: "Remarque : Les valeurs sont masquées par sécurité. Le diff est heuristique et n'inclut pas les commentaires/l'ordre.",
text16: "✓ Copié",
},
- edu: {
- heading1: "Bonnes pratiques pour les variables d'environnement",
- heading2: "Gestion des secrets",
- heading3: "Sécurité des fichiers .env",
- heading4: "Conseils de pro",
- p1: "
Les variables d'environnement sont un élément fondamental de la méthodologie \"Twelve-Factor App\", qui prône une séparation stricte de la configuration et du code. En utilisant des variables d'environnement, vous pouvez exécuter le même code dans différents environnements (développement, préproduction, production) simplement en changeant les valeurs de configuration.
Les bonnes pratiques incluent l'utilisation de noms descriptifs en majuscules (ex. DATABASE_URL), la fourniture de valeurs par défaut pour les paramètres non critiques, et de ne jamais coder en dur d'informations sensibles directement dans votre contrôle de version.
",
- p2: "
Les secrets sont une catégorie spéciale de variables d'environnement contenant des informations sensibles comme des clés API, des mots de passe de base de données et des certificats privés. Les gérer de manière sécurisée est essentiel pour prévenir les violations de données. Vous devriez utiliser un service dédié de gestion des secrets (comme AWS Secrets Manager, HashiCorp Vault ou Cloudflare Secrets) pour les environnements de production.
Pour le développement local, les fichiers .env sont couramment utilisés, mais ils ne doivent jamais être commités dans votre dépôt git. Ajoutez toujours *.env à votre fichier .gitignore.
",
- p3: "
Lors du partage de fichiers .env avec des coéquipiers pour le débogage, il existe un risque élevé d'exposer accidentellement des secrets de production. Notre outil aide à atténuer ce risque grâce à la fonctionnalité \"Masquer les valeurs sensibles\". Il utilise des heuristiques pour identifier des clés comme SECRET, TOKEN ou PASSWORD et remplace leurs valeurs par une version masquée (ex. ab...yz (32)).
Cela vous permet de comparer la structure et les valeurs non sensibles de vos fichiers d'environnement sans divulguer les secrets réels.
",
- p4: "
Utilisez le bouton \"Inverser\" pour inverser rapidement le sens de comparaison entre l'environnement A et l'environnement B.
Utilisez le champ \"Filtrer les clés\" pour vous concentrer sur des groupes spécifiques de variables, comme toutes les clés commençant par AWS_ ou DB_.
Incluez toujours un fichier .env.example dans votre dépôt avec des valeurs factices pour montrer aux autres développeurs quelles variables sont nécessaires au fonctionnement de l'application.
N'oubliez pas que les variables d'environnement sont généralement des chaînes ; si votre application a besoin d'un booléen ou d'un nombre, assurez-vous d'analyser correctement la valeur dans votre code.
",
- },
cheatsheet: {
title: "Notes Dotenv",
h0: "Stratégie de masquage",
@@ -2638,16 +2326,6 @@ export default {
text7: "Aucun aperçu pour le moment.",
text8: "✓ Copié",
},
- edu: {
- heading1: "Qu'est-ce que le SVG ?",
- p1: "Le SVG (Scalable Vector Graphics) est un format d'image vectorielle basé sur XML pour les graphiques bidimensionnels, avec prise en charge de l'interactivité et de l'animation. Contrairement aux formats matriciels comme JPEG ou PNG, les SVG sont définis par des chemins mathématiques, ce qui leur permet d'être mis à l'échelle sans perte de qualité. Cela les rend parfaits pour les logos, icônes et illustrations sur le web, où ils restent nets sur tous les supports, des écrans mobiles aux moniteurs de bureau haute résolution.",
- heading2: "Comment utiliser cet outil",
- p2: "Collez votre code SVG dans la zone de texte SVG d'entrée à gauche. Cliquez sur Aperçu pour voir le graphique et extraire sa palette de couleurs. Utilisez les boutons Optimiser ou Minifier pour nettoyer le balisage et réduire la taille du fichier. Optionnellement, remplacez des couleurs spécifiques en saisissant de nouvelles valeurs dans le panneau Couleurs puis en cliquant sur Appliquer. Cliquez sur Copier ou Télécharger pour enregistrer votre SVG assaini et optimisé.",
- heading3: "Cas d'utilisation courants",
- p3: "Gestion d'icônes pour nettoyer les SVG exportés depuis des outils de design comme Figma ou Illustrator. Thématisation pour changer rapidement les couleurs d'un ensemble d'icônes afin de correspondre à votre palette de marque. Sécurité pour assainir les SVG provenant de sources non fiables afin de supprimer d'éventuels scripts ou références externes. Performance pour minifier le balisage SVG afin de réduire la taille des graphiques en ligne et améliorer les temps de chargement des pages.",
- heading4: "Conseils de pro",
- p4: "Utilisez le bouton currentColor pour convertir tous les fill et stroke explicites en currentColor, rendant votre SVG facilement stylable via CSS. Optimisez toujours vos SVG avant de les utiliser en production pour garantir qu'ils sont aussi légers que possible. Lors de la création de SVG dans des outils de design, utilisez les fonctions Vectoriser le contour et Simplifier le tracé pour réduire la complexité du code généré avant l'optimisation.",
- },
cheatsheet: {
title: "Notes de sécurité SVG",
h0: "Assainissement",
@@ -2801,16 +2479,6 @@ export default {
text28: "Cliquez sur Scanner pour trouver des secrets.",
text29: "✓ Copié",
},
- edu: {
- heading1: "Que sont les fuites de secrets ?",
- p1: "Les fuites de secrets se produisent lorsque des informations sensibles comme des clés API, mots de passe ou jetons privés sont accidentellement commitées dans un contrôle de version ou partagées sur des forums publics. Ces fuites peuvent entraîner des accès non autorisés, des violations de données et des pertes financières. Cet outil aide à identifier les motifs de secrets courants localement dans votre navigateur avant de partager ou committer votre code.",
- heading2: "Comment utiliser cet outil",
- p2: "Collez votre code, configuration ou fichiers de logs dans la zone de saisie. Cliquez sur le bouton Scanner pour analyser le texte à la recherche de secrets potentiels. Consultez les résultats et conseils pour chaque élément détecté. Utilisez le bouton Copier la version masquée pour obtenir une version sécurisée de votre texte avec les secrets masqués.",
- heading3: "Cas d'utilisation courants",
- p3: "Vérifications pre-commit pour scanner votre code avant de committer afin de vous assurer qu'aucun secret n'est inclus. Masquage de logs pour masquer les jetons sensibles dans les logs avant de les partager avec le support ou des coéquipiers. Audit de sécurité pour auditer rapidement les fichiers de configuration à la recherche d'identifiants codés en dur.",
- heading4: "Conseils de pro",
- p4: "Renouvelez toujours vos identifiants immédiatement si vous découvrez qu'ils ont fuité. Utilisez des variables d'environnement ou des gestionnaires de secrets plutôt que de coder en dur des secrets dans votre code source. Activez Inclure les motifs de faible sévérité pour un scan plus approfondi, mais attendez-vous à davantage de faux positifs.",
- },
cheatsheet: {
title: "Que faire si vous trouvez un secret",
h0: "Étapes immédiates",
@@ -2907,16 +2575,6 @@ export default {
text15: "✓ Structure JWKS valide (",
text16: "Veuillez coller une JWK.",
},
- edu: {
- heading1: "Qu'est-ce qu'un JWT ?",
- p1: "Un JSON Web Token (JWT) est un moyen compact et compatible avec les URL de représenter des claims à transférer entre deux parties. Un JWT se compose de trois parties encodées en Base64URL séparées par des points : le Header (algorithme et type), le Payload (claims), et la Signature. La signature garantit que le jeton n'a pas été altéré. Les JWT sont couramment utilisés pour l'authentification et l'échange d'informations dans les API web. Les claims standards incluent sub (sujet), iss (émetteur), aud (audience), exp (expiration), nbf (pas avant), iat (émis le), et jti (ID JWT).",
- heading2: "Algorithmes JWT",
- p2: "HS256/384/512 utilise HMAC avec SHA-2 et un secret partagé — simple, mais les deux parties doivent détenir la même clé. RS256/384/512 utilise des signatures asymétriques RSA PKCS#1 v1.5 — idéal pour les architectures de microservices où les services n'ont besoin que de la clé publique. ES256/384/512 utilise ECDSA avec des courbes NIST pour des signatures plus petites que RSA à sécurité équivalente. PS256/384/512 utilise RSA-PSS, une variante probabiliste préférée à RS* dans les systèmes modernes.",
- heading3: "JWK et JWKS",
- p3: "Une JSON Web Key (JWK) est une structure JSON représentant une clé cryptographique. Un JWK Set (JWKS) est une structure JSON contenant un tableau de JWK sous la propriété keys. Les services publient leur JWKS à une URL bien connue (ex. /.well-known/jwks.json), permettant aux clients de récupérer les clés publiques pour la vérification JWT sans échange de clés hors bande. Les clés d'un JWKS sont identifiées par leur kid (Key ID), auquel les headers JWT font référence.",
- heading4: "Bonnes pratiques de sécurité",
- p4: "Validez toujours les claims exp, nbf, iss et aud côté serveur. N'utilisez jamais l'algorithme alg: none en production — il supprime toute protection par signature. Préférez les algorithmes asymétriques (RS*, ES*, PS*) à HMAC lorsque plusieurs services doivent vérifier des jetons. Renouvelez régulièrement les clés et utilisez kid pour identifier quelle clé a signé chaque jeton. Stockez les clés privées de manière sécurisée — ne les commitez jamais dans un contrôle de version. Utilisez des durées d'expiration courtes et des jetons de rafraîchissement plutôt que des JWT à longue durée de vie.",
- },
},
"encoding-workbench": {
name: "Atelier d'Encodage",
@@ -2980,16 +2638,6 @@ export default {
js: {
noLayers: "Aucune couche d'encodage reconnaissable détectée.",
},
- edu: {
- heading1: "Encodage vs hachage : quelle différence ?",
- heading2: "Comment utiliser cet outil",
- heading3: "L'encodage en couches expliqué",
- heading4: "Guide des algorithmes de hash",
- p1: "
L'encodage transforme les données en une représentation différente qui peut être inversée (décodée). Les formats courants incluent le Base64 — utilisé pour transmettre des données binaires sur des canaux texte — l'encodage URL, l'encodage d'entités HTML et l'hexadécimal. L'encodage n'est pas du chiffrement ; il n'offre aucune confidentialité.
Le hachage est une transformation mathématique à sens unique. Une fonction de hachage cryptographique prend n'importe quelle entrée et produit une empreinte de longueur fixe. Vous ne pouvez pas inverser un hash pour récupérer l'entrée d'origine. Les hashs sont utilisés pour vérifier l'intégrité des fichiers, stocker les mots de passe en toute sécurité, et générer des signatures numériques.
",
- p2: "
Onglet Encoder / Décoder : Collez du texte et choisissez une opération (Base64, URL, HTML, Hex), ou cliquez sur Détection automatique des couches pour dénicher automatiquement plusieurs encodages imbriqués.
Onglet Hash : Saisissez du texte ou sélectionnez un fichier, choisissez des algorithmes, et cliquez sur Tout hacher. Activez le mode HMAC pour calculer des hashs à clé avec un secret partagé.
Onglet Identifier : Collez un hash ou une chaîne encodée inconnue et cliquez sur Identifier pour voir les algorithmes probables avec des taux de confiance.
",
- p3: "
Les données réelles sont souvent encodées plusieurs fois. Par exemple, un payload pourrait être encodé en URL, puis en Base64, puis placé dans une chaîne hexadécimale. La fonctionnalité Détection automatique des couches inspecte le motif de l'entrée, tente chaque décodage en séquence, et visualise chaque étape sous forme de carte afin que vous puissiez voir exactement comment les données ont été enveloppées.
",
- p4: "
MD5 — sortie de 128 bits. Cryptographiquement compromis ; à utiliser uniquement pour la compatibilité héritée ou des sommes de contrôle non liées à la sécurité.
SHA-1 — sortie de 160 bits. Déprécié pour un usage sécuritaire. Encore présent dans d'anciens commits Git et certificats.
SHA-256 — sortie de 256 bits. Usage général, largement utilisé dans TLS, la signature de code et les vérifications d'intégrité des données.
SHA-512 — sortie de 512 bits. Marge de sécurité plus élevée ; préféré pour les workflows liés aux mots de passe.
bcrypt — Fonction de hachage de mot de passe adaptative avec un facteur de coût configurable. À utiliser pour stocker des mots de passe ; pas pour l'intégrité des données.
Proof Key for Code Exchange (PKCE, RFC 7636) a été conçu à l'origine pour les applications mobiles et natives qui ne peuvent pas stocker un client secret de manière sécurisée. Il fonctionne en faisant générer par le client un code_verifier aléatoire, en en dérivant un code_challenge (SHA-256 + base64url), et en envoyant le challenge avec la requête d'autorisation. Lors de l'échange du code d'autorisation contre des jetons, le client envoie le code_verifier d'origine. Le serveur d'autorisation vérifie qu'il correspond au challenge précédent — prouvant que la requête de jeton provient du même client qui a démarré le flux.
Même pour les clients confidentiels (applications côté serveur avec un client secret), PKCE est désormais recommandé par OAuth 2.1 comme défense contre les attaques d'interception de code d'autorisation.
Le flux implicite (response_type=token) a été conçu comme raccourci pour les applications monopages, retournant le jeton d'accès directement dans le fragment d'URL. Cela crée de sérieux problèmes : les jetons dans les URL apparaissent dans l'historique du navigateur, les logs serveur et les en-têtes referrer, et le flux est vulnérable aux attaques par injection de jeton. OAuth 2.0 Security Best Current Practice (RFC 9700) et OAuth 2.1 suppriment explicitement le flux implicite au profit de Authorization Code + PKCE, que les SPA peuvent utiliser en toute sécurité sans client secret.
PKCE requis pour tous les flux Authorization Code, y compris les clients confidentiels.
Flux implicite supprimé — utilisez Authorization Code + PKCE à la place.
Resource Owner Password Credentials (ROPC) supprimé — le grant type password est déprécié.
Rotation des refresh tokens requise pour les clients publics — un nouveau refresh token doit être émis à chaque utilisation.
Correspondance exacte de l'URI de redirection requise — pas de correspondance par motif ni de wildcards.
",
- heading4: "Le flux Authorization Code étape par étape",
- p4: "
Générer la paire PKCE : Créez un code_verifier aléatoire et calculez code_challenge = BASE64URL(SHA256(code_verifier)).
Rediriger vers l'endpoint d'autorisation : Incluez response_type=code, client_id, redirect_uri, scope, state, code_challenge, et code_challenge_method=S256.
L'utilisateur s'authentifie auprès du serveur d'autorisation et accorde son consentement.
Recevez le code d'autorisation à votre redirect_uri accompagné du state renvoyé — vérifiez que state correspond à celui envoyé.
Échangez le code contre des jetons : POST vers l'endpoint de jeton avec grant_type=authorization_code, code, redirect_uri, client_id, et code_verifier.
Recevez le jeton d'accès (et optionnellement id_token et refresh_token) et utilisez-les pour appeler des API.
JSON Web Token(JWT)は、当事者間で情報をJSONオブジェクトとして安全に伝送するための、コンパクトで自己完結型の方法を定義するオープンスタンダード(RFC 7519)です。この情報はデジタル署名されているため、検証・信頼できます。JWTはシークレット(HMACアルゴリズムを使用)または公開鍵/秘密鍵ペア(RSAまたはECDSAを使用)で署名できます。
インプリシットフロー(response_type=token)は、シングルページアプリ向けのショートカットとして設計され、アクセストークンをURLフラグメントに直接返します。これは深刻な問題を引き起こします。URL内のトークンはブラウザ履歴、サーバーログ、リファラーヘッダーに残り、フローはトークンインジェクション攻撃に対して脆弱です。OAuth 2.0 Security Best Current Practice(RFC 9700)とOAuth 2.1は、SPAがクライアントシークレットなしで安全に使用できる認可コード+PKCEを優先し、インプリシットフローを明示的に廃止しています。
JSON(JavaScript Object Notation)은 사람이 읽고 쓰기 쉽고 기계가 파싱하고 생성하기 쉬운 경량 데이터 교환 형식입니다. JavaScript 프로그래밍 언어 표준의 하위 집합을 기반으로 합니다. JSON은 완전히 언어에 독립적인 텍스트 형식이지만 C 계열 언어 프로그래머에게 친숙한 규칙을 사용합니다.
이러한 특성들은 JSON을 웹 애플리케이션, API, 구성 파일에 이상적인 데이터 교환 언어로 만듭니다. JSON은 더 작은 용량과 더 나은 성능으로 XML을 대체하며 웹에서 데이터 교환의 사실상 표준이 되었습니다.
",
- heading2: "이 도구 사용 방법",
- p2: "
왼쪽의 JSON 입력 편집기에 원시 또는 지저분한 JSON 데이터를 붙여넣으세요.
형식 버튼을 클릭하여 적절한 들여쓰기와 구문 강조로 코드를 보기 좋게 만드세요.
또는 최소화 버튼을 사용하여 프로덕션 사용을 위해 모든 공백을 제거하세요.
JSON이 유효한지 확인하려면 상태 표시기를 확인하세요; 오류가 있으면 도구가 정확한 줄을 강조 표시합니다.
형식화된 결과를 클립보드에 저장하려면 복사를 클릭하거나 초기화하려면 지우기를 클릭하세요.
",
- heading3: "일반적인 사용 사례",
- p3: "
API 디버깅: REST API에서 읽기 어려운 JSON 응답을 빠르게 형식화하여 데이터 구조를 검사합니다.
설정 유효성 검사:package.json, tsconfig.json 또는 기타 구성 파일의 구문이 올바른지 확인합니다.
데이터 준비: 대역폭을 절약하기 위해 코드에 삽입하거나 네트워크를 통해 전송하기 전에 JSON 데이터를 최소화합니다.
학습 및 문서화: 기술 문서나 튜토리얼을 위한 명확한 예제를 만들기 위해 보기 좋게 형식화된 출력을 사용합니다.
",
- heading4: "프로 팁",
- p4: "
입력 형식을 변경하지 않고 구문 오류만 확인하려면 유효성 검사 버튼을 사용하세요.
성능 문제를 일으킬 수 있는 과도하게 복잡하거나 깊이 중첩된 구조를 식별하려면 최대 깊이 통계에 주의를 기울이세요.
표준 JSON에서 단따옴표는 유효하지 않으므로 키와 문자열 값에는 항상 큰따옴표를 사용하세요.
JSON 웹 토큰(JWT)은 당사자 간에 정보를 JSON 객체 형태로 안전하게 전송하기 위한 간결하고 독립적인 방식을 정의하는 공개 표준(RFC 7519)입니다. 이 정보는 디지털 서명되어 있어 검증하고 신뢰할 수 있습니다. JWT는 비밀 키(HMAC 알고리즘 사용) 또는 RSA나 ECDSA를 사용하는 공개/개인 키 쌍으로 서명할 수 있습니다.
간결한 크기 덕분에 JWT는 HTTP Authorization 헤더의 Bearer 토큰과 같이 인증 및 정보 교환 시나리오에서 흔히 사용됩니다.
클레임 검증: Claim Analysis 상자에서 사람이 읽기 쉬운 날짜와 검증 상태를 확인하세요.
",
- heading3: "일반적인 사용 사례",
- p3: "
인증: Auth0, Firebase, AWS Cognito 같은 제공업체의 ID 토큰이나 액세스 토큰을 검사합니다.
디버깅: 백엔드에서 토큰이 거부되는 이유를 문제 해결합니다(예: 만료 여부 확인).
보안 감사: 암호화되지 않은 페이로드에 민감한 데이터가 실수로 노출되지 않았는지 확인합니다.
개발: 별도의 코드 작성 없이 API 개발 중 토큰 내용을 빠르게 확인합니다.
",
- heading4: "프로 팁",
- p4: "
JWT는 암호화되지 않습니다: 표준 JWT는 서명만 되어 있을 뿐 암호화되지 않는다는 점을 기억하세요. 토큰을 가진 사람은 누구나 페이로드를 읽을 수 있습니다. JWT에 비밀번호나 개인 키를 저장하지 마세요.
만료 확인: 항상 exp 클레임을 확인하세요. 토큰이 만료된 경우 애플리케이션에서 거부해야 합니다.
HTTPS 사용: JWT는 인증에 자주 사용되므로 가로채기를 방지하기 위해 항상 안전한 HTTPS 연결을 통해 전송해야 합니다.
",
- heading5: "토큰 구조 (header.payload.signature)",
- p5: "
JWT는 일반적으로 점으로 구분된 세 부분으로 구성됩니다:
헤더: 일반적으로 토큰 유형(JWT)과 사용 중인 서명 알고리즘(예: HS256 또는 RS256)의 두 부분으로 구성됩니다.
페이로드: 클레임(엔터티, 일반적으로 사용자에 대한 정보)과 추가 데이터를 포함합니다.
서명: 인코딩된 헤더, 인코딩된 페이로드, 비밀 키, 헤더에 지정된 알고리즘을 사용해 서명하여 생성됩니다.
",
- heading6: "보안 고려 사항",
- p6: "
JWT는 무결성을 보장하기 위해 서명되지만 일반적으로 암호화되지는 않습니다. 즉, 토큰을 가진 사람은 누구나 헤더와 페이로드를 디코딩하여 내부 정보를 읽을 수 있습니다. 비밀번호나 개인 키 같은 민감한 정보를 JWT 페이로드에 저장하지 마세요.
또한 재전송 공격을 방지하기 위해 항상 exp(만료) 클레임을 확인하고, 서버가 페이로드의 데이터를 신뢰하기 전에 서명을 검증하도록 하세요.
",
- heading7: "프로 팁",
- p7: "
exp 클레임을 사용해 액세스 토큰의 만료 시간을 짧게 설정하면 토큰이 탈취되었을 때의 영향을 최소화할 수 있습니다.
중간자 공격을 통한 가로채기를 방지하려면 항상 HTTPS로 JWT를 전송하세요.
RS256과 같은 비대칭 알고리즘을 사용하는 경우 공개 키를 공유하면 다른 서비스가 토큰을 생성하지 않고도 검증할 수 있습니다.
특정 미래 시점에만 유효한 토큰을 발급하려면 nbf(Not Before) 클레임을 확인하세요.
",
- },
cheatsheet: {
title: "JWT 빠른 참조",
h0: "구조",
@@ -193,16 +167,6 @@ export default {
text0: "✓ 복사됨!",
tpl1: "GUID:",
},
- edu: {
- heading1: "UUID란 무엇인가요?",
- p1: "범용 고유 식별자(UUID)는 컴퓨터 시스템에서 정보를 고유하게 식별하는 데 사용되는 128비트 숫자입니다. 중앙 기관 없이 독립적으로 생성되도록 설계되었으며 충돌 확률은 무시할 수 있을 정도로 낮습니다.",
- heading2: "이 도구 사용 방법",
- p2: "UUID 버전(시간 기반은 v1, 무작위는 v4)과 필요한 ID 개수를 선택하세요. 생성 버튼을 클릭하면 데이터베이스나 애플리케이션에서 바로 사용할 수 있는 고유 식별자 목록이 만들어집니다.",
- heading3: "일반적인 사용 사례",
- p3: "분산 데이터베이스의 기본 키, 세션 식별자, 트랜잭션 추적, 그리고 여러 시스템에서 고유성이 중요한 임시 파일이나 리소스의 이름 지정 등에 사용됩니다.",
- heading4: "프로 팁",
- p4: "UUID v4는 고품질 무작위성에 기반하기 때문에 범용 고유 ID로 가장 널리 사용됩니다. 생성 시간 순으로 ID를 정렬해야 한다면 v1을 사용하세요.",
- },
},
"password-generator": {
name: "비밀번호 생성기",
@@ -265,24 +229,6 @@ export default {
status6: "약함",
text1: "유효한 기본 이메일 주소를 입력하세요.",
},
- edu: {
- heading1: "강력한 비밀번호란 무엇인가요?",
- p1: "
강력한 비밀번호는 무단 접근에 대한 첫 번째 방어선입니다. 고속 컴퓨팅 시대에서 \"안전하다\"는 것은 엔트로피로 정의됩니다 — 문자열의 무작위성과 예측 불가능성의 척도입니다. 강력한 비밀번호는 길어야 하고(최소 16자), 모든 계정에서 고유해야 하며, 대문자, 소문자, 숫자, 기호를 포함한 다양한 문자 유형으로 구성되어야 합니다.
생일, 반려동물 이름, 흔한 사전 단어 같은 개인 정보는 피하세요. P@ssw0rd123처럼 복잡해 보이는 조합도 일반적인 패턴의 방대한 사전을 사용하는 현대의 무차별 대입 도구에 의해 쉽게 크래킹됩니다.
",
- heading2: "이 도구 사용 방법",
- p2: "
모드 선택: 필요에 따라 비밀번호, 사용자명, 패스프레이즈, 또는 이메일 별칭 중에서 선택하세요.
길이 조정: 슬라이더를 사용하여 원하는 길이를 설정하세요. 비밀번호의 경우, 높은 보안을 위해 16자 이상이 권장됩니다.
옵션 구성: 문자 세트(기호, 숫자 등) 또는 스타일(읽기 쉬운 vs. 보안)을 전환하세요.
생성: 생성 버튼을 클릭하여 고유한 자격증명을 만드세요.
복사: 복사 아이콘을 사용하여 결과를 클립보드나 비밀번호 관리자로 안전하게 이동하세요.
",
- heading3: "일반적인 사용 사례",
- p3: "
계정 보안: 사용하는 모든 온라인 서비스에 고유하고 높은 엔트로피의 비밀번호 생성.
시스템 관리: 새 사용자나 서비스 계정을 위한 임시 비밀번호 생성.
개인정보 보호: 플러스 별칭(예: user+service@domain.com)을 사용하여 어떤 서비스가 데이터를 판매하는지 추적하거나 스팸을 필터링.
기억하기 쉬운 보안: 수동으로 입력해야 하지만 크래킹에 강한 마스터 비밀번호를 위한 패스프레이즈 생성기 사용.
",
- heading4: "프로 팁",
- p4: "
비밀번호 관리자 사용: 복잡한 비밀번호를 외우려 하지 마세요. 이 도구를 사용하여 생성하고, Bitwarden, 1Password, KeePassXC 같은 신뢰할 수 있는 비밀번호 관리자에 저장하세요.
복잡성보다 엔트로피: 길이가 문자 다양성보다 더 중요한 경우가 많습니다. 20자 소문자 비밀번호가 8자 복잡한 비밀번호보다 크래킹하기 어려운 경우가 많습니다.
침해 시 교체: 사용하는 서비스가 침해된 경우, 이 생성기를 사용하여 완전히 새롭고 관련 없는 비밀번호를 즉시 만드세요.
",
- heading5: "강력한 비밀번호란 무엇인가요?",
- p5: "
강력한 비밀번호는 무단 접근에 대한 첫 번째 방어선입니다. 고속 컴퓨팅 시대에서 \"안전하다\"는 것은 엔트로피로 정의됩니다 — 문자열의 무작위성과 예측 불가능성의 척도입니다. 강력한 비밀번호는 길어야 하고(최소 16자), 모든 계정에서 고유해야 하며, 대문자, 소문자, 숫자, 기호를 포함한 다양한 문자 유형으로 구성되어야 합니다.
생일, 반려동물 이름, 흔한 사전 단어 같은 개인 정보는 피하세요. P@ssw0rd123처럼 복잡해 보이는 조합도 일반적인 패턴의 방대한 사전을 사용하는 현대의 무차별 대입 도구에 의해 쉽게 크래킹됩니다.
",
- heading6: "엔트로피 설명",
- p6: "
엔트로피는 비밀번호의 무작위성과 예측 불가능성의 척도로, 일반적으로 비트로 표현됩니다. 엔트로피가 높을수록 비밀번호가 더 강력합니다. 예를 들어, 소문자만 사용하는 10자 비밀번호는 전체 영숫자 및 특수 문자를 사용하는 10자 비밀번호보다 엔트로피가 훨씬 낮습니다.
생성기는 실시간으로 엔트로피를 계산하여 비밀번호 강도에 대한 객관적인 측정값을 제공합니다. 100비트 이상의 엔트로피를 가진 비밀번호는 현대의 크래킹 기술에 매우 강한 것으로 간주됩니다.
",
- heading7: "모범 사례",
- p7: "
비밀번호 재사용 금지: 모든 계정에 고유한 비밀번호를 사용하세요. 하나의 서비스가 침해되더라도 다른 계정은 안전합니다.
비밀번호 관리자 사용: 수십 개의 복잡하고 고유한 비밀번호를 기억할 수 없으므로, 신뢰할 수 있는 비밀번호 관리자를 사용하여 안전하게 저장하세요.
MFA 활성화: 다중 인증은 비밀번호가 노출되더라도 중요한 두 번째 보안 레이어를 추가합니다.
개인 정보 피하기: 사전에서 찾을 수 있는 이름, 생일, 흔한 단어는 절대 포함하지 마세요.
",
- heading8: "프로 팁",
- p8: "
수동으로 입력해야 하는 계정에는 패스프레이즈 모드를 사용하세요; 기억하기 쉬우면서도 크래킹에 강합니다.
최대 보안을 위해 서비스에서 허용하는 가장 긴 비밀번호를 생성하세요(종종 64자 또는 128자).
비밀번호 관리자의 내장 보안 검사 기능을 사용하여 저장된 비밀번호를 정기적으로 감사하세요.
플러스 별칭(예: user+service@gmail.com)을 사용하여 어떤 서비스가 데이터를 판매하거나 스팸을 보내는지 추적하는 것을 고려하세요.
암호학적 해싱은 텍스트나 파일 같은 입력 데이터를 고정된 길이의 문자열(일반적으로 16진수)로 변환하는 수학적 프로세스입니다. 이 지문은 입력값마다 고유하며, 원본 데이터에서 단 한 비트만 바뀌어도 완전히 다른 해시가 생성됩니다. 이를 눈사태 효과(avalanche effect)라고 합니다.
암호화와 달리 해싱은 단방향 함수입니다. 해시를 역산하여 원본 데이터를 얻을 수 없습니다. 이러한 특성 덕분에 데이터 무결성 검증, (솔트와 결합한) 안전한 비밀번호 저장, 내용을 노출하지 않고 파일을 식별하는 데 이상적입니다.
",
- heading2: "이 도구 사용 방법",
- p2: "
입력 유형 선택: 문자열은 텍스트 탭, 로컬 파일은 파일 탭을 선택하세요.
입력 제공: 작업 영역에 텍스트를 붙여넣거나 파일을 드래그 앤 드롭하세요.
선택적 HMAC: 인증용 키드 해시를 생성하려면 HMAC 필드에 비밀 키를 입력하세요.
결과 확인: 도구가 실시간으로 여러 해시 변형(SHA-256, SHA-512 등)을 자동으로 계산합니다.
무결성 검증: 검증 탭을 사용해 알려진 해시와 입력값을 비교하여 변조 여부를 확인하세요.
",
- heading3: "일반적인 사용 사례",
- p3: "
소프트웨어 검증: 다운로드한 설치 파일의 SHA-256 체크섬을 확인하여 손상되거나 제3자에 의해 변조되지 않았는지 확인합니다.
데이터 무결성: 데이터베이스 레코드나 구성 파일의 해시를 생성하여 시간이 지나면서 발생하는 무단 변경을 탐지합니다.
비밀번호 보안: SHA-512와 같은 여러 알고리즘이 평문을 안전한 표현으로 변환하는 방식을 이해합니다.
디지털 포렌식: 중복 파일을 식별하거나 증거가 변조되지 않았는지 확인합니다.
",
- heading4: "프로 팁",
- p4: "
SHA-256 이상 권장: 보안이 중요한 작업에는 항상 SHA-256이나 SHA-512를 사용하세요. MD5와 SHA-1은 암호학적으로 취약하므로 레거시 호환성 목적으로만 사용해야 합니다.
진위 확인에는 HMAC 사용: 무결성과 발신자 신원을 모두 검증해야 한다면 공유 비밀 키와 함께 HMAC을 사용하세요.
출처 확인: 다운로드를 검증할 때는 항상 신뢰할 수 있는 HTTPS 보안 공식 웹사이트에서 예상 해시값을 가져오세요.
",
- },
cheatsheet: {
title: "해시 알고리즘 참조",
h0: "알고리즘 비교",
@@ -435,16 +371,6 @@ export default {
text5: "최소 /",
text6: "IPv6 /",
},
- edu: {
- heading1: "CIDR이란 무엇인가요?",
- heading2: "이 도구 사용 방법",
- heading3: "일반적인 사용 사례",
- heading4: "프로 팁",
- p1: "클래스리스 도메인 간 라우팅(CIDR)은 IP 주소와 IP 라우팅을 할당하는 방법입니다. 주소 배포에 더 많은 유연성과 효율성을 제공하기 위해 클래스(A, B, C) 기반의 이전 시스템을 대체했습니다.",
- p2: "IP 접두사와 함께 IP 주소를 입력하거나(예: 192.168.1.0/24) 슬라이더를 사용하여 접두사 길이를 조정합니다. \"분석 실행\"을 클릭하여 네트워크 세부 정보, 사용 가능한 호스트 범위 및 이진 표현을 확인합니다.",
- p3: "클라우드 인프라(VPC)를 위한 네트워크 서브넷 계획, 라우팅 문제 해결, 특정 접두사의 호스트 용량 계산, CIDR과 서브넷 마스크 간 변환.",
- p4: "IPv4에서 서브넷의 첫 번째와 마지막 주소는 일반적으로 네트워크 ID와 브로드캐스트 주소로 예약됩니다. IPv6에서 서브넷은 표준 로컬 네트워크의 경우 거의 항상 /64입니다.",
- },
cheatsheet: {
title: "서브넷 빠른 참조",
h0: "일반적인 서브넷",
@@ -619,16 +545,6 @@ export default {
tpl3: "기본값 변경:",
tpl4: "검색과 일치하는 포트를 찾을 수 없습니다.",
},
- edu: {
- heading1: "포트 카테고리 및 보안 가이드",
- p1: "잘 알려진 포트(0-1023)는 IANA가 할당하며 Unix 시스템에서 루트 권한이 필요합니다. 등록된 포트(1024-49151)는 애플리케이션이 사용합니다. 동적/임시 포트(49152-65535)는 클라이언트 측 연결에 사용됩니다. 포트 범위를 이해하는 것은 방화벽 구성과 네트워크 보안에 필수적입니다.",
- heading2: "이 도구 사용 방법",
- p2: "포트 번호 또는 서비스 이름으로 검색하여 프로토콜 세부 정보와 보안 위험 수준을 확인하세요. 카테고리(잘 알려진, 등록된, 동적) 또는 프로토콜(TCP/UDP)로 필터링하여 결과를 좁힐 수 있습니다. 행을 클릭하면 일반적인 취약점과 보안 강화 권장 사항을 포함한 전체 세부 정보를 볼 수 있습니다.",
- heading3: "일반적인 사용 사례",
- p3: "방화벽 규칙 구성, 네트워크 문제 해결, 보안 감사 중 예기치 않게 열린 포트 식별, 프로토콜 포트 할당에 대한 빠른 참조 등에 사용됩니다.",
- heading4: "프로 팁",
- p4: "위험도 필터를 사용하면 네트워크에서 고위험 포트를 빠르게 식별할 수 있습니다. '가장 많이 사용되는 상위 50개 포트' 섹션은 가장 자주 사용되는 서비스를 한눈에 보여줍니다.",
- },
cheatsheet: {
c2: "\n
\n
사용하지 않는 포트 차단: 필요 없는 서비스를 비활성화해 공격 표면을 줄이세요
\n
방화벽 사용: 네트워크 수준의 접근 제어를 구성하세요
\n
트래픽 모니터링: 민감한 포트(22, 443, 3389) 연결을 기록하세요
\n
암호화 프로토콜 우선: Telnet(23) 대신 SSH(22), FTP 대신 SFTP를 사용하세요
\n
기본값 변경: SSH/RDP에 비표준 포트 사용을 고려하세요(보안을 위한 은닉)
\n
",
c1: "\n
\n
포트
서비스
위험
\n
21
FTP
암호화되지 않은 파일 전송
\n
23
Telnet
평문 인증
\n
25
SMTP
이메일 스팸 릴레이 위험
\n
53
DNS
DDoS 증폭 공격
\n
445
SMB
랜섬웨어 확산
\n
3389
RDP
무차별 대입 공격
\n
",
@@ -872,16 +788,6 @@ export default {
text4: "경고",
alert0: "먼저 구성을 생성해 주세요",
},
- edu: {
- heading1: "WireGuard 소개",
- p1: "WireGuard는 최신 암호화 기술을 사용하는 현대적이고 고성능인 VPN 프로토콜입니다. OpenVPN이나 IPsec 같은 기존 프로토콜보다 더 단순하고 빠르게 설계되었으며, 최소한의 코드베이스 덕분에 공격 표면이 훨씬 작습니다. WireGuard는 현재 Linux 커널에 포함되어 있으며 Windows, macOS, iOS, Android에서 네이티브로 지원됩니다.",
- heading2: "이 도구 사용 방법",
- p2: "토폴로지 템플릿(포인트 투 포인트, 허브 앤 스포크, 사이트 투 사이트, 로드 워리어)을 선택하면 구성이 미리 채워집니다. 키 생성 버튼을 클릭하면 브라우저에서 로컬로 새 키 쌍이 만들어집니다. 필수 필드를 입력한 후 구성 생성 버튼을 클릭하면 WireGuard 구성 파일이 만들어집니다. 구성 파일(.conf) 다운로드로 파일을 저장하거나 QR 생성으로 모바일 가져오기용 QR 코드를 만드세요.",
- heading3: "일반적인 사용 사례",
- p3: "회사 네트워크에 연결하는 직원용 원격 접속 VPN. 지사 네트워크를 연결하는 사이트 투 사이트 VPN. 공용 Wi-Fi에서 안전하게 탐색하기 위한 개인 VPN 서버. 임베디드 기기 간 안전한 통신을 위한 IoT 기기 터널링.",
- heading4: "프로 팁",
- p4: "NAT 뒤에 있는 클라이언트에서는 트래픽이 없을 때도 터널을 유지하기 위해 PersistentKeepalive = 25를 사용하세요. PresharedKey는 양자내성을 위한 추가적인 대칭 암호화 계층을 더합니다. AllowedIPs = 0.0.0.0/0은 모든 트래픽을 터널을 통해 라우팅하고(풀 터널), 특정 CIDR을 지정하면 분할 터널이 됩니다.",
- },
cheatsheet: {
title: "WireGuard 빠른 참조",
h0: "인터페이스 필드",
@@ -1025,14 +931,6 @@ export default {
tpl6: "예:",
tpl7: "다이어그램에서 필드를 클릭하면 세부 정보를 볼 수 있습니다.",
},
- edu: {
- heading1: "프로토콜 헤더란 무엇인가요?",
- p1: "프로토콜 헤더는 네트워크 패킷에서 페이로드 앞에 오는 구조화된 데이터입니다. 발신지 및 수신지 주소, 프로토콜 유형, 시퀀스 번호, 체크섬 같은 제어 정보를 담고 있습니다. 헤더 구조를 이해하는 것은 네트워크 디버깅, 패킷 분석, 프로토콜 구현에 필수적입니다.",
- heading2: "이 도구 사용 방법",
- p2: "탭에서 프로토콜을 선택하면 헤더 구조를 볼 수 있습니다. 각 색상 블록은 크기가 표시된 하나의 필드를 나타냅니다. 필드를 클릭하면 필드 이름과 설명, 비트/바이트 오프셋, 일반적인 값과 의미, RFC 참조 등 세부 정보를 확인할 수 있습니다. 16진수 덤프 파서를 사용하면 tcpdump나 Wireshark 같은 도구의 16진수 출력을 붙여넣어 실제 패킷 캡처를 분석할 수 있습니다.",
- heading3: "일반적인 사용 사례",
- p3: "캡처된 네트워크 트래픽의 구조를 이해하기 위한 패킷 분석, 네트워크 프로토콜 학습을 위한 시각적 보조 자료, 잘못된 헤더나 필드 값을 찾아내는 디버깅, 네트워크 프로토콜 구현 시 참고 자료로 활용됩니다.",
- },
cheatsheet: {
c3: "\n
\n
값
프로토콜
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
필드
크기
설명
\n
Source Port
2바이트
발신 포트 번호
\n
Dest Port
2바이트
수신 포트 번호
\n
Seq Number
4바이트
시퀀스 번호
\n
Ack Number
4바이트
확인 응답 번호
\n
Data Offset
4비트
헤더 길이 / 4
\n
Flags
9비트
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2바이트
수신 윈도 크기
\n
",
@@ -1108,16 +1006,6 @@ export default {
tpl0: "차이점",
tpl1: "차이점 없음 (또는 빈 입력)",
},
- edu: {
- heading1: "텍스트 비교(Diff)란 무엇인가요?",
- p1: "텍스트 비교(diffing)는 두 데이터 시퀀스를 비교하여 차이점을 식별하는 과정입니다. 추가되거나 삭제되거나 수정된 부분을 강조 표시합니다. 이는 소프트웨어 개발, 데이터 분석, 콘텐츠 관리에서 기본적인 작업으로, 시간에 따른 변경 사항을 추적하거나 문서의 여러 버전을 비교할 수 있게 해줍니다.",
- heading2: "Diff 알고리즘",
- p2: "대부분의 텍스트 비교 도구는 최장 공통 부분 수열(LCS) 문제를 기반으로 한 알고리즘을 사용합니다. 목표는 두 텍스트에 동일한 상대적 순서로 나타나는 요소의 가장 긴 시퀀스를 찾는 것입니다. 일반적인 구현으로는 매우 효율적이며 Git에서 사용되는 Myers diff 알고리즘과 Hunt-McIlroy 알고리즘이 있습니다. 이 알고리즘들은 한 텍스트를 다른 텍스트로 변환하는 데 필요한 최소 편집 횟수를 계산합니다.",
- heading3: "사용 사례",
- p3: "개발자가 풀 리퀘스트에서 정확히 무엇이 바뀌었는지 확인할 수 있는 코드 리뷰. 공간을 절약하기 위해 이력을 일련의 diff로 저장하는 Git 같은 버전 관리 시스템. 요청된 모든 변경 사항이 반영되었는지 확인하기 위해 초안을 비교하는 작가와 편집자의 콘텐츠 감사. 불일치를 찾기 위해 구성 파일이나 데이터베이스 내보내기를 비교하는 데이터 검증.",
- heading4: "프로 팁",
- p4: "많은 diff 도구에는 들여쓰기나 후행 공백의 변경을 무시하는 옵션이 있어 코드를 비교할 때 노이즈를 줄일 수 있습니다. 변경 사항의 영향을 이해하려면 차이 주변에 변경되지 않은 텍스트 몇 줄(컨텍스트 줄)을 포함하세요. 산문이나 자연어 문서에는 단어 단위 diff가 더 유용한 경우가 많은 반면, 코드에는 줄 단위 diff가 표준입니다.",
- },
},
"regex-visualizer": {
name: "정규식 시각화 도구",
@@ -1168,16 +1056,6 @@ export default {
tpl5: "그룹 없음",
tpl6: "잘못된 정규 표현식",
},
- edu: {
- heading1: "정규 표현식이란 무엇인가요?",
- p1: "정규 표현식(regex)은 문자열에서 문자 조합을 일치시키는 데 사용되는 강력한 패턴입니다. 프로그래밍 언어 전반에서 텍스트 처리, 검증, 데이터 추출에 필수적인 도구입니다. 정규식 패턴은 리터럴 문자와 검색 규칙을 정의하는 특수 메타 문자로 구성됩니다. 양식 검증, 로그 파싱, 검색 및 바꾸기 작업, 데이터 정제 작업에 사용됩니다.",
- heading2: "이 도구 사용 방법",
- p2: "입력란에 정규식 패턴을 입력하세요. 도구가 패턴 구조를 시각화하는 레일로드 다이어그램을 자동으로 생성합니다. 테스트 텍스트를 추가하면 실시간으로 일치 항목이 강조 표시되고 설명이 표시됩니다. 일반적인 패턴과 구문에 대한 빠른 참조는 치트시트를 이용하세요. 원하는 프로그래밍 언어의 코드 스니펫을 생성할 수 있습니다.",
- heading3: "일반적인 사용 사례",
- p3: "처리 전 사용자 입력이 올바른 이메일 형식과 일치하는지 확인하는 이메일 검증, 서버 로그에서 타임스탬프와 IP 주소를 추출하는 로그 파싱, 불필요한 문자를 제거하거나 전화번호 형식을 일관되게 맞추는 데이터 정제, 패턴 매칭을 이용한 대량 텍스트 변환을 위한 검색 및 바꾸기에 사용됩니다.",
- heading4: "프로 팁",
- p4: "간단하게 시작해서 점진적으로 복잡한 패턴을 만드세요. 일치 항목을 참조할 필요가 없다면 비캡처 그룹 (?:)을 사용하세요. 빈 문자열이나 특수 문자 같은 엣지 케이스를 테스트하세요. 정규식의 가독성을 고려하세요 — 복잡한 패턴은 주석으로 문서화할 수 있습니다.",
- },
cheatsheet: {
title: "정규식 빠른 참조",
h0: "문자 클래스",
@@ -1323,16 +1201,6 @@ export default {
text1: "복사",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "SSH 키 소개",
- p1: "SSH 키는 원격 시스템에 안전하게 인증하는 데 사용되는 한 쌍의 암호화 키입니다. 개인 키는 내 컴퓨터에 남아 있고, 공개 키는 서버에 배치됩니다. 이 비대칭 방식은 비밀번호 인증보다 훨씬 안전하며, 서버 접근, Git 호스팅, 자동화된 배포에서 업계 표준으로 사용됩니다.",
- heading2: "이 도구 사용 방법",
- p2: "원하는 키 유형(RSA 또는 ECDSA)을 선택하고, RSA의 경우 키 크기도 선택하세요. 키를 식별할 선택적 주석(일반적으로 user@host)을 추가할 수 있습니다. 생성 버튼을 클릭해 키 쌍을 만드세요. 공개 키를 복사해 서버에 추가하고, 개인 키는 로컬 컴퓨터에 안전하게 보관하세요.",
- heading3: "일반적인 사용 사례",
- p3: "원격 서버에 암호 없이 SSH 로그인하기 위한 서버 인증. 비밀번호 없이 GitHub, GitLab, Bitbucket에 인증하는 Git 호스팅. 서버에 연결해야 하는 자동화된 배포 스크립트를 위한 CI/CD 파이프라인. 안전한 점프 호스트 구성을 위한 배스천 호스트 접근.",
- heading4: "프로 팁",
- p4: "새로운 배포에는 Ed25519 키를 권장합니다 — RSA보다 더 빠르고 안전합니다. 항상 강력한 패스프레이즈로 개인 키를 보호하세요. 세션 중 패스프레이즈를 반복해서 입력하지 않으려면 ssh-agent를 사용하세요. 키는 권한을 600으로 설정하여 ~/.ssh/에 보관하세요.",
- },
cheatsheet: {
title: "SSH 키 빠른 참조",
h0: "키 유형",
@@ -1372,16 +1240,6 @@ export default {
tpl2: "주체 대체 이름이 없습니다.",
tpl3: "파싱된 확장이 없습니다.",
},
- edu: {
- heading1: "X.509 인증서란 무엇인가요?",
- heading2: "이 도구 사용 방법",
- heading3: "일반적인 사용 사례",
- heading4: "프로 팁",
- p1: "
X.509는 공개 키 인증서의 표준 형식으로, 공개 키를 신원(웹사이트, 조직, 개인 등)에 안전하게 결합하는 디지털 문서입니다. 이 인증서는 HTTPS를 통해 인터넷을 보호하고 이메일과 소프트웨어에 서명하는 데 사용되는 공개 키 기반 구조(PKI)의 기반입니다.
X.509 인증서에는 공개 키, 인증서 소유자의 신원, 그리고 해당 인증서를 발급한 인증 기관(CA)의 디지털 서명이 포함되어 있어 진위를 증명합니다.
",
- p2: "
인증서 붙여넣기: PEM으로 인코딩된 인증서(BEGIN 및 END 헤더 포함)를 복사하여 입력란에 붙여넣으세요.
파싱: \"인증서 파싱\"을 클릭하여 데이터를 추출하고 분석하세요.
요약 검토: 상단 카드에서 일반 이름(CN), 발급자, 유효 기간을 확인하세요.
세부 정보 확인: 아래 섹션을 펼쳐 전체 Subject, Issuer, SAN, 기술적 확장을 확인하세요.
상태 확인: 상태 배지를 확인하여 인증서가 현재 유효한지 만료되었는지 확인하세요.
",
- p3: "
SSL/TLS 문제 해결: 만료 여부나 호스트명 불일치를 확인하여 웹사이트에 \"안전하지 않음\" 경고가 표시되는 이유를 진단합니다.
보안 감사: 인증서가 신뢰할 수 있는 CA에서 발급되었고 강력한 서명 알고리즘(SHA-256 등)을 사용하는지 확인합니다.
개발: 로컬 개발 중 자체 서명된 인증서나 CSR(인증서 서명 요청)을 검사합니다.
인프라 관리: 필요한 모든 서브도메인이 하나의 인증서로 커버되는지 확인하기 위해 SAN(Subject Alternative Names)을 확인합니다.
",
- p4: "
SAN 확인: 최신 브라우저는 호스트명 검증에 일반 이름(CN)이 아닌 SAN(Subject Alternative Name) 확장을 사용합니다. 도메인이 SAN 목록에 포함되어 있는지 항상 확인하세요.
체인 확인: 인증서가 유효한데도 신뢰되지 않는다면 중간 인증서가 누락되었을 수 있습니다. \"발급자\"를 확인하여 서버에 포함해야 할 중간 CA를 파악하세요.
피닝용 지문: 모바일 애플리케이션이나 고보안 API에서 인증서 피닝을 구현해야 한다면 이 도구가 제공하는 SHA-256 지문을 사용하세요.
",
- },
cheatsheet: {
title: "X.509 인증서 참조",
h0: "인증서 필드",
@@ -1424,16 +1282,6 @@ export default {
text1: "JSON 복사",
text2: "XML 복사",
},
- edu: {
- heading1: "SAML이란 무엇인가요?",
- p1: "SAML(Security Assertion Markup Language)은 당사자 간, 특히 자격 증명 공급자(IdP)와 서비스 공급자(SP) 간에 인증 및 인가 데이터를 교환하기 위한 XML 기반 공개 표준입니다. SAML은 여러 엔터프라이즈 SSO(싱글 사인온) 솔루션의 근간으로, 사용자가 하나의 자격 증명 집합으로 여러 애플리케이션에 접근할 수 있게 해줍니다. 가장 널리 쓰이는 버전은 SAML 2.0으로, 어설션을 담은 보안 토큰을 사용해 IdP와 SP 사이에 주체에 대한 정보를 전달합니다.",
- heading2: "이 도구 사용 방법",
- p2: "Base64로 인코딩된 SAMLResponse 또는 원시 XML을 입력란에 붙여넣으세요. Redirect 바인딩 페이로드를 디코딩하는 경우 압축 해제 시도 옵션을 켜세요. 응답 디코딩을 클릭해 메시지를 파싱하세요. 빠른 요약에서 발급자, 주체, 유효성 상태를 확인하세요. 속성 테이블에서 디코딩된 사용자 속성을 확인하세요. 탭을 사용해 정리된 XML, 어설션 세부 정보, 또는 클레임의 JSON 표현을 확인하세요.",
- heading3: "일반적인 사용 사례",
- p3: "만료된 어설션이나 대상 불일치를 확인하여 사용자가 로그인하지 못하는 이유를 진단하는 SSO 문제 해결. 자격 증명 공급자가 올바른 속성을 보내고 있는지 확인하는 통합 테스트. 원시 XML을 검사하고 어설션이 적절히 서명되었는지 확인하는 보안 감사. 서비스 공급자 통합 중 SAML 메시지의 내용을 빠르게 확인하는 개발.",
- heading4: "프로 팁",
- p4: "HTTP-Redirect로 전송되는 SAML 메시지는 보통 Base64로 인코딩되기 전에 deflate(압축)됩니다 — 디코딩이 실패하면 압축 해제 시도 체크박스를 켜보세요. AudienceRestriction이 SP의 엔터티 ID와 일치하는지 확인하세요. 응답이 유효하지 않다고 표시되면 IdP와 SP 시계 간의 시간 오차를 확인하기 위해 NotBefore와 NotOnOrAfter 시간을 확인하세요.",
- },
cheatsheet: {
title: "SAML 빠른 참조",
h0: "SAML 흐름",
@@ -1476,16 +1324,6 @@ export default {
alert1: "User-Agent 문자열을 입력하세요",
tpl2: "원시 분석 출력",
},
- edu: {
- heading1: "User-Agent란 무엇인가요?",
- p1: "User-Agent는 방문하는 모든 웹사이트로 브라우저가 전송하는 문자열입니다. 브라우저 버전, 운영체제, 기기 유형을 식별하여 서버가 특정 환경에 맞게 콘텐츠를 최적화할 수 있게 해줍니다.",
- heading2: "이 도구 사용 방법",
- p2: "입력란에 User-Agent 문자열을 붙여넣거나 '이것 사용' 버튼을 클릭해 현재 브라우저 문자열을 분석하세요. 도구가 브라우저 엔진, OS 버전, 기기 특성을 세부적으로 분석합니다.",
- heading3: "일반적인 사용 사례",
- p3: "웹사이트 호환성 문제 디버깅, 봇 트래픽을 식별하기 위한 웹 서버 로그 분석, 브라우저 스푸핑 확인, 방문자의 기기 분포 파악에 사용됩니다.",
- heading4: "프로 팁",
- p4: "많은 최신 브라우저는 핑거프린팅을 방지하기 위해 User-Agent 문자열을 고정하거나 단순화합니다. 가장 정확한 버전 정보를 확인하려면 Version이나 Chrome 토큰을 확인하세요.",
- },
},
"qr-code": {
name: "QR 코드 생성기",
@@ -1524,16 +1362,6 @@ export default {
alert3: "복사됨!",
tpl4: "디코딩할 이미지 업로드",
},
- edu: {
- heading1: "QR 코드란 무엇인가요?",
- p1: "QR(Quick Response) 코드는 다양한 유형의 데이터, 가장 흔하게는 URL을 저장할 수 있는 2차원 바코드입니다. 스마트폰과 전용 리더기로 스캔하여 정보에 빠르게 접근하거나 작업을 실행할 수 있습니다.",
- heading2: "이 도구 사용 방법",
- p2: "인코딩할 텍스트나 URL을 입력하세요. 필요하면 크기와 오류 정정 수준을 조정하세요. QR 코드는 실시간으로 업데이트되며, 인쇄나 디지털 용도로 이미지로 다운로드할 수 있습니다.",
- heading3: "일반적인 사용 사례",
- p3: "웹사이트 링크 공유, Wi-Fi 자격 증명 제공, 디지털 명함(vCard), 이벤트 티켓 발급, 모바일 결제나 인증 흐름에 사용됩니다.",
- heading4: "프로 팁",
- p4: "더 높은 오류 정정 수준(H 또는 Q)을 사용하면 QR 코드가 일부 손상되거나 가려져도 스캔이 가능하여, 실물 표지판이나 브랜딩에 이상적입니다.",
- },
},
"timestamp-converter": {
name: "타임스탬프 변환기",
@@ -1564,16 +1392,6 @@ export default {
text0: "잘못된 타임스탬프",
tpl1: "Unix (밀리초)",
},
- edu: {
- heading1: "Unix 시간이란 무엇인가요?",
- p1: "Unix 시간(Epoch 시간, POSIX 시간, Unix 타임스탬프라고도 함)은 특정 시점을 설명하는 시스템입니다. 윤초를 제외하고 Unix Epoch 이후 경과된 초의 수입니다; Unix Epoch는 1970년 1월 1일 00:00:00 UTC입니다. 단일 정수이므로 컴퓨터가 저장하고 조작하기 쉬워 운영 체제와 파일 형식에서 널리 사용됩니다. 이 표준을 통해 서로 다른 시스템은 로컬 시간대 설정에 관계없이 시간을 정확하게 통신할 수 있습니다.",
- heading2: "이 도구 사용 방법",
- p2: "Unix에서 사람 읽기 가능 형식으로 변환: Unix 타임스탬프 필드에 타임스탬프를 입력하고 초 또는 밀리초 여부를 선택합니다. 사람 읽기 가능 형식에서 Unix로 변환: 선택기를 사용하여 날짜와 시간을 선택하고 원하는 시간대를 선택합니다. 현재 타임스탬프를 빠르게 가져오려면 지금 버튼을 사용하세요. ISO 8601, 로컬 시간, UTC, 상대 시간을 포함한 실시간 결과를 확인하세요. 결과 옆의 복사 버튼을 클릭하여 클립보드에 저장하세요.",
- heading3: "일반적인 사용 사례",
- p3: "서버 로그나 데이터베이스 항목에서 발견되는 암호화된 타임스탬프를 디버깅을 위해 읽기 쉬운 날짜로 변환하는 로그 분석. 백엔드가 올바른 에포크 값을 전송하는지 확인하는 API 개발. 시스템 간 이동 시 시간 기반 데이터의 일관성을 보장하는 데이터 마이그레이션. 크론 작업, 만료 날짜, 이벤트 트리거를 위한 미래 또는 과거 타임스탬프를 계산하는 스케줄링.",
- heading4: "프로 팁",
- p4: "JavaScript로 작업할 때 Date.now()는 밀리초를 반환하지만 표준 Unix 타임스탬프는 초 단위임을 기억하세요 — 변환하려면 1000으로 나누세요. 시스템 간 데이터 교환 시 최대 호환성을 위해 ISO 8601 형식을 항상 사용하세요. 32비트 부호 있는 정수가 오버플로되는 2038년 문제에 주의하세요; 현대 시스템은 64비트 정수를 사용하여 가까운 미래에는 이 문제를 해결합니다.",
- },
},
"color-converter": {
name: "색상 변환기",
@@ -1589,16 +1407,6 @@ export default {
badge7: "내 브라우저에서만",
badge8: "개인정보 보호",
},
- edu: {
- heading1: "색상 모델 설명 (HEX/RGB/HSL)",
- heading2: "이 도구 사용 방법",
- heading3: "일반적인 사용 사례",
- heading4: "프로 팁",
- p1: "
색상 모델은 색상을 표현하기 위한 수학적 시스템입니다. HEX(16진수)는 HTML과 CSS에서 사용되는 6자리 코드로, 빨강, 초록, 파랑 구성 요소를 나타냅니다. RGB(빨강, 초록, 파랑)는 디지털 이미징에서 자주 사용되며 각 채널에 0에서 255까지의 십진수 값을 사용합니다.
HSL(색조, 채도, 밝기)은 기본 색상(색조), 강도(채도), 밝기(밝기)로 색상을 설명하므로 인간에게 더 직관적입니다. 이러한 모델을 이해하면 다양한 플랫폼과 기기에서 일관성을 보장하면서 디자인과 개발 요구에 맞는 올바른 형식을 선택하는 데 도움이 됩니다.
또는 \"수동 입력\" 필드에 특정 값을 입력하세요(#hex, rgb, 또는 hsl 형식 지원).
\"미리보기\" 상자에서 선택한 색상을 실시간으로 확인하세요.
아래의 HEX, RGB, HSL, HSV 카드에서 변환된 값을 확인하세요.
카드의 \"복사\" 아이콘을 클릭하여 해당 형식을 클립보드에 저장하세요.
",
- p3: "
웹 디자인: 디자인 도구(주로 RGB/HSL)의 색상을 CSS 스타일시트에서 사용할 HEX 코드로 변환합니다.
브랜드 일관성: 브랜드 색상이 다양한 디지털 형식과 미디어에서 정확하게 표현되도록 합니다.
UI 개발: HSL에서 밝기 값을 조정하여 기본 색상의 더 밝거나 어두운 변형을 빠르게 생성합니다.
접근성 테스트: 미리보기를 사용하여 선택한 색상이 읽기 쉬운 텍스트와 UI 요소에 충분한 대비를 제공하는지 확인합니다.
",
- p4: "
버튼 같은 UI 구성 요소를 디자인할 때 HSL을 사용하세요; 밝기 값만 조정하면 호버 상태를 쉽게 만들 수 있습니다.
CSS에서 투명도를 사용할 때는 알파 채널에 대한 가독성과 제어를 위해 rgba() 또는 hsla()를 선호하세요.
시각 장애가 있는 사용자를 위해 디자인이 접근 가능한지 항상 색상 대비 비율을 확인하세요.
",
- },
},
"unit-converter": {
name: "단위 변환기",
@@ -1616,16 +1424,6 @@ export default {
text0: "변환 공식을 보려면 단위를 선택하세요",
text1: "유효한 숫자를 입력하세요",
},
- edu: {
- heading1: "측정 시스템 개요",
- p1: "측정 시스템은 측정 단위의 모음과 그것들을 서로 연결하는 규칙입니다. 가장 일반적인 두 가지 시스템은 미터법(국제 단위계 또는 SI)과 야드-파운드법입니다. 미터법은 10의 거듭제곱을 기반으로 하여 매우 논리적이고 확장하기 쉽습니다. 주로 미국에서 사용되는 야드-파운드법은 인치, 피트, 파운드 같은 단위를 사용하며 역사적 기원과 덜 균일한 변환 계수를 가집니다. 이러한 시스템 간의 차이를 이해하는 것은 과학, 공학, 국제 무역, 요리나 여행 같은 일상적인 작업에 필수적입니다.",
- heading2: "이 도구 사용 방법",
- p2: "상단의 격자에서 측정 카테고리(예: 길이, 무게, 온도)를 선택합니다. 출발 드롭다운 메뉴에서 변환할 단위를 선택합니다. 입력 필드에 변환하려는 값을 입력합니다. 도착 드롭다운 메뉴에서 대상 단위를 선택합니다. 변환된 값이 변환에 사용된 수학 공식과 함께 즉시 나타납니다.",
- heading3: "일반적인 사용 사례",
- p3: "킬로미터를 마일로 또는 섭씨를 화씨로 변환하는 여행. 미터법(그램/밀리리터)과 야드-파운드법(온스/컵) 측정 간에 레시피를 변환하는 요리. 압력, 에너지 또는 속도의 다양한 단위 간 정밀 변환을 위한 공학 및 과학. 메가바이트, 기가바이트, 테라바이트의 차이를 이해하는 디지털 스토리지.",
- heading4: "프로 팁",
- p4: "선택한 단위 사이의 변환 방향을 빠르게 바꾸려면 교환 버튼을 사용하세요. 특히 볼륨과 무게의 경우 특정 단위 유형을 항상 두 번 확인하세요, 미국 대 영국 갤런처럼 이름이 서로 다른 시스템에서 유사할 수 있습니다. 일련의 여러 변환을 수행할 때는 누적 반올림 오류를 피하기 위해 최종 결과까지 가능한 많은 소수점 자리를 유지하세요.",
- },
},
"yaml-toml-converter": {
name: "YAML/TOML 변환기",
@@ -1659,16 +1457,6 @@ export default {
text6: "⚠️ TOML 변환 실패:",
tpl7: "변환 대기.",
},
- edu: {
- heading1: "YAML vs TOML vs JSON 비교",
- p1: "JSON은 단순함과 JavaScript의 네이티브 지원 덕분에 데이터 교환에 가장 널리 사용되는 형식입니다. YAML(YAML Ain't Markup Language)은 들여쓰기로 구조를 표현하는 사람 친화적인 데이터 직렬화 표준으로, 복잡한 구성 파일에서 널리 사용됩니다. TOML(Tom's Obvious, Minimal Language)은 명확한 문법 덕분에 읽고 쓰기 쉽게 설계되었으며 프로젝트 구성에 자주 사용됩니다. JSON이 엄격하고 간결한 반면, YAML과 TOML은 가독성과 수동 편집의 용이성을 우선시합니다.",
- heading2: "이 도구 사용 방법",
- p2: "구성 데이터(JSON, YAML, TOML)를 왼쪽의 원본 텍스트 영역에 붙여넣으세요. 도구가 원본 형식을 자동으로 감지하거나, 드롭다운에서 직접 선택할 수도 있습니다. 변환 없이 구문 오류만 확인하려면 유효성 검사만 클릭하세요. 변환 버튼(JSON으로, YAML으로, TOML으로) 중 하나를 클릭하면 데이터가 해당 형식으로 변환됩니다. 오른쪽 출력 패널에서 결과를 확인하고 복사를 클릭해 클립보드에 저장하세요.",
- heading3: "일반적인 사용 사례",
- p3: "Kubernetes 매니페스트, Docker Compose 파일, AWS CloudFormation 템플릿 작업 시 JSON과 YAML 사이를 변환하는 인프라 as 코드. package.json(JSON)과 pyproject.toml 또는 Cargo.toml(TOML) 사이의 설정을 마이그레이션하는 프로젝트 구성. 복잡한 데이터 구조가 다른 형식에서 어떻게 보이는지 빠르게 시각화하는 API 프로토타이핑. 데이터 무결성을 유지하면서 오래된 구성 파일을 최신 형식으로 변환하는 레거시 마이그레이션.",
- heading4: "프로 팁",
- p4: "복잡한 중첩 구조의 가독성이 유지보수에 필수적인 CI/CD 파이프라인에는 YAML을 사용하세요. 수동으로 편집해야 할 수도 있는 최종 사용자에게 깔끔한 인터페이스를 제공하려면 애플리케이션 수준 구성 파일에는 TOML을 선호하세요. YAML을 JSON으로 변환할 때는 YAML 타입 강제 변환 문제(예: NO가 false로 해석될 수 있음)에 유의하고 데이터 타입이 올바르게 유지되는지 확인하세요.",
- },
cheatsheet: {
title: "형식 비교",
h0: "구문 차이",
@@ -1719,16 +1507,6 @@ export default {
text1: "복사",
text2: "복사됨!",
},
- edu: {
- heading1: "htpasswd란 무엇인가요?",
- p1: "
htpasswd 파일은 Apache와 Nginx 웹 서버에서 기본 인증을 위해 사용자 이름과 해시된 비밀번호를 저장하는 플랫 파일 데이터베이스입니다. 전체 데이터베이스 기반 인증 시스템 없이도 웹사이트의 특정 디렉터리나 관리자 패널을 보호하는 간단하면서도 효과적인 방법입니다.
htpasswd 파일의 각 줄은 하나의 사용자를 나타내며 username:hashed_password 형식을 따릅니다.
",
- heading2: "이 도구 사용 방법",
- p2: "
사용자 이름 입력: 인증에 사용할 사용자 이름을 입력하세요.
비밀번호 입력: 비밀번호를 입력하거나 강력한 비밀번호 생성을 클릭해 안전한 비밀번호를 만드세요.
목 데이터는 민감하거나 개인 식별 정보(PII)를 포함하지 않고 실제 데이터를 모방하는 합성 정보입니다. GDPR이나 CCPA 같은 개인정보 규정을 위반하거나 데이터 침해 위험 없이 애플리케이션을 구축하고 검증하기 위한 현실적인 데이터셋이 필요한 개발자와 테스터에게 필수적입니다. 목 데이터를 사용하면 표준 사용자 프로필에서 엣지 케이스까지 다양한 시나리오를 시뮬레이션하여 소프트웨어가 모든 유형의 입력을 올바르게 처리하도록 할 수 있습니다.
",
- heading2: "테스트 전략",
- p2: "
효과적인 테스트는 다양한 데이터셋을 필요로 합니다. 개발 데이터베이스를 시드하거나, 수천 개의 레코드로 부하 테스트를 수행하거나, 다양한 문자열 길이로 UI 레이아웃을 검증하기 위해 목 데이터를 사용하세요. 외부 API에서 예측 가능한 응답이 필요한 통합 테스트에 특히 유용합니다. 로컬에서 데이터를 생성함으로써 재설정하고 재현하기 쉬운 일관된 테스트 환경을 만들어 더 신뢰할 수 있고 빠른 개발 주기를 이끌 수 있습니다.
",
- heading3: "목에서의 데이터 프라이버시",
- p3: "
프라이버시는 현대 소프트웨어 개발에서 최우선 사항입니다. 개발 또는 스테이징 환경에서 실제 프로덕션 데이터를 사용하는 것은 주요 보안 위험입니다. 목 데이터 생성기는 가짜이지만 구조적으로 올바른 데이터를 생성하여 이를 해결합니다. 이 도구는 브라우저 내에서 완전히 실행되므로 구성 및 생성된 데이터는 기기를 떠나지 않습니다. 이 프라이버시 우선 접근 방식은 목 데이터 생성 과정 자체도 가장 엄격한 보안 표준에 안전하고 준수하는 것을 보장합니다.
",
- heading4: "프로 팁",
- p4: "
일관성: 여러 관련 데이터셋을 생성할 때 테이블 간 참조 무결성을 유지하기 위해 고정 시드나 패턴을 사용하세요.
엣지 케이스: 애플리케이션 견고성을 테스트하기 위해 빈 문자열, 매우 긴 이름, 특수 문자를 포함하세요.
형식 전환: 빠른 데이터베이스 시드를 위해 SQL 내보내기를 사용하고 스프레드시트 분석이나 대량 가져오기를 위해 CSV를 사용하세요.
자동화: 이 도구가 사용하는 패턴은 지속적인 테스트를 위해 자동화된 CI/CD 파이프라인에 통합될 수 있습니다.
네이밍 컨벤션은 소스 코드와 문서에서 변수, 타입, 함수 등의 개체를 나타내는 식별자에 사용할 문자 시퀀스를 선택하는 규칙 집합입니다. camelCase(예: myVariable)는 소문자로 시작하고 이후 각 단어의 첫 글자를 대문자로 씁니다. snake_case(예: my_variable)는 밑줄로 단어를 구분합니다.
PascalCase(예: MyVariable)는 모든 단어의 첫 글자를 대문자로 쓰고, kebab-case(예: my-variable)는 하이픈으로 단어를 구분합니다. 이러한 컨벤션은 단순히 미관의 문제가 아니라 코드 가독성, 유지보수성, 그리고 다양한 프로그래밍 언어와 프레임워크의 관용적 표준을 따르는 데 매우 중요합니다.
",
- p2: "
페이지 상단의 \"입력 텍스트\" 영역에 텍스트를 입력하거나 붙여넣으세요.
도구가 입력을 실시간으로 12가지 이상의 케이스 스타일로 자동 변환합니다.
\"변환 결과\" 그리드를 스크롤하여 필요한 케이스 스타일을 찾으세요.
결과 옆의 \"복사\" 아이콘을 클릭하여 클립보드에 저장하세요.
\"지우기\" 버튼을 사용해 모든 입력을 지우고 새로 변환을 시작하세요.
",
- p3: "
코드 리팩터링: 서로 다른 표준을 가진 언어 간에 코드를 마이그레이션할 때 변수 이름을 빠르게 변환합니다(예: Java의 camelCase를 Python의 snake_case로).
웹 개발: CSS 클래스 이름이나 URL 슬러그를 위해 텍스트를 kebab-case로 변환하여 SEO에 친화적이고 유효한 식별자를 만듭니다.
데이터베이스 설계: 애플리케이션 수준의 camelCase 식별자를 데이터베이스 테이블과 열 이름을 위한 snake_case로 변환합니다.
콘텐츠 제작: Title Case나 Sentence case를 사용해 기사나 문서의 제목과 본문을 빠르게 형식화합니다.
",
- p4: "
프로젝트 내에서 일관성을 유지하세요. 특정 스타일을 선호하더라도 작업 중인 코드베이스의 기존 컨벤션을 항상 따르세요.
단순히 케이스 컨벤션만 따르기보다 의미를 전달하는 설명적인 이름을 사용하세요(예: status보다 isUserLoggedIn이 더 낫습니다).
백엔드 시스템은 snake_case를, 프런트엔드는 camelCase를 선호하는 경우가 많으므로 API 작업 시 케이스 간 변환에 대비하세요.
축소(Minification)는 기능을 변경하지 않고 소스 코드에서 불필요한 문자를 모두 제거하는 과정입니다. 여기에는 공백, 줄바꿈, 주석 제거와 때로는 변수 이름 단축이 포함됩니다. 목표는 코드의 파일 크기를 줄여 네트워크를 통해 전송해야 하는 데이터양을 줄이는 것입니다.
이를 통해 페이지 로드 시간이 빨라지고 웹 애플리케이션의 성능이 향상됩니다. 축소는 프로덕션 환경에 필수적이지만 사람이 읽고 디버깅하기가 거의 불가능해집니다. 따라서 일반적으로 실제 서버에 배포하기 전 빌드 프로세스의 마지막 단계로 수행됩니다.
",
- p2: "
상단 탭에서 프로그래밍 언어(JavaScript, CSS, HTML, JSON)를 선택하세요.
왼쪽의 \"입력 코드\" 텍스트 영역에 소스 코드를 붙여넣으세요.
\"코드 축소\" 버튼을 클릭하여 프로덕션용으로 파일 크기를 줄이세요.
또는 \"코드 정리\"를 클릭하여 들여쓰기와 서식을 추가해 가독성을 높이세요.
\"출력 코드\" 영역에서 결과를 확인하고 \"복사\" 또는 \"다운로드\"를 클릭해 최적화된 코드를 저장하세요.
",
- p3: "
프로덕션 배포: 웹 서버에 업로드하기 전에 JS와 CSS 파일을 축소하여 사이트 속도와 SEO를 개선하세요.
이메일 템플릿: HTML 이메일 코드를 축소하여 다양한 이메일 클라이언트의 크기 제한을 넘지 않고 수신자에게 빠르게 로드되도록 하세요.
API 응답: 서버에서 전송하기 전에 JSON 데이터를 축소하여 대역폭 사용량과 송신 비용을 줄이세요.
코드 감사: 정리 도구를 사용해 온라인에서 찾은 지저분하거나 축소된 코드를 정리하여 작동 방식을 파악하세요.
",
- p4: "
개발용으로는 항상 축소되지 않은 원본 소스 코드를 보관하고, 프로덕션 배포에는 축소된 버전만 사용하세요.
소스 맵을 사용하면 축소된 프로덕션 코드와 읽기 쉬운 개발 코드 사이의 간극을 메워 브라우저에서 효율적으로 디버깅할 수 있습니다.
서버에서 축소와 함께 Gzip이나 Brotli 압축을 결합하면 파일 크기와 전송 시간을 최대한 줄일 수 있습니다.
",
- },
},
"image-converter": {
name: "이미지 변환기",
@@ -1969,16 +1717,6 @@ export default {
alert2: "파일 읽기 오류.",
tpl3: "Canvas API를 사용한 클라이언트 측 처리 - 업로드 없음, 즉시 결과",
},
- edu: {
- heading1: "이미지 형식 비교 (PNG/JPEG/WebP)",
- p1: "
올바른 이미지 형식을 선택하는 것은 웹 성능과 시각적 품질에 매우 중요합니다. JPEG는 손실 압축을 사용해 작은 파일 크기를 달성하므로 사진이나 색상이 많은 복잡한 이미지에 가장 적합합니다. PNG는 무손실 압축을 사용하므로 투명도가 필요하거나 선명한 윤곽과 단색(로고, 아이콘 등)이 있는 이미지에 이상적입니다.
WebP는 우수한 손실 및 무손실 압축을 제공하는 최신 형식으로, 높은 품질을 유지하면서 JPEG나 PNG보다 파일 크기를 훨씬 작게 만드는 경우가 많습니다.
",
- heading2: "이 도구 사용 방법",
- p2: "
이미지 업로드 영역에 파일을 드롭하거나 클릭하여 파일을 찾아 업로드하세요.
변환 형식 옵션에서 원하는 출력 형식(PNG, JPG, WebP)을 선택하세요.
JPG나 WebP 같은 손실 형식을 선택했다면 품질 슬라이더로 파일 크기와 시각적 품질의 균형을 맞추세요.
선택적으로 이미지 크기 조정 설정을 사용해 비율이나 특정 크기로 이미지 크기를 조정하세요.
변환 & 크기 조정을 클릭한 후 다운로드하여 최적화된 자산을 저장하세요.
",
- heading3: "일반적인 사용 사례",
- p3: "
웹 최적화: 큰 PNG나 JPEG 이미지를 WebP로 변환하여 웹사이트 로드 속도와 Core Web Vitals를 개선하세요.
소셜 미디어: Instagram, Twitter, LinkedIn 같은 플랫폼의 특정 업로드 요구 사항을 충족하도록 사진 크기를 조정하고 압축하세요.
이메일 마케팅: 이메일 캠페인의 이미지 파일 크기를 줄여 모든 수신자에게 빠르게 로드되도록 하세요.
앱 개발: 크기 조정 기능을 사용해 다양한 화면 밀도에 맞는 동일 아이콘이나 자산의 여러 크기를 생성하세요.
",
- heading4: "프로 팁",
- p4: "
모든 최신 브라우저에서 지원되고 압축 대비 품질 비율이 가장 우수하므로 웹 프로젝트에서는 가능하면 WebP를 사용하세요.
JPEG로 변환할 때는 대부분의 웹 용도에서 70-80% 품질 설정이 파일 크기와 시각적 품질의 최적 균형을 제공합니다.
반복 압축으로 인한 품질 저하를 방지하려면 항상 원본 고해상도 이미지를 보관하고, 특정 용도의 사본만 변환하거나 크기를 조정하세요.
",
- },
},
"css-gradient": {
name: "CSS 그라데이션 생성기",
@@ -2018,16 +1756,6 @@ export default {
alert2: "CSS 클립보드 복사 실패",
tpl3: "로딩 화면 및 오버레이",
},
- edu: {
- heading1: "CSS 그라디언트란 무엇인가요?",
- heading2: "선형 vs 방사형 vs 원뿔형 그라디언트",
- heading3: "브라우저 지원 및 성능",
- heading4: "더 나은 그라디언트를 위한 프로 팁",
- p1: "
CSS 그라디언트는 지정된 두 개 이상의 색상 사이에 부드러운 전환을 표시할 수 있는 강력한 기능입니다. 전통적인 배경 이미지와 달리 그라디언트는 브라우저에서 생성되므로 무한히 확장 가능하고, 대역폭을 덜 사용하며, 코드로 쉽게 조작할 수 있습니다. 웹 디자인에 깊이감과 시각적 흥미를 더하기 위해 배경, 버튼, 장식 요소에 흔히 사용됩니다.
",
- p2: "
CSS 그라디언트에는 세 가지 주요 유형이 있습니다:
선형 그라디언트: 색상이 직선을 따라 전환됩니다. 각도(예: 45deg)나 키워드(예: to right)로 방향을 조절할 수 있습니다.
방사형 그라디언트: 색상이 중심점(\"원점\")에서 바깥으로 퍼져나갑니다. 모양(원 또는 타원)과 중심 위치를 지정할 수 있습니다.
원뿔형 그라디언트: 파이 차트나 색상환처럼 중심점을 기준으로 색상이 전환됩니다. 덜 흔하지만 독특한 패턴과 UI 요소를 만드는 데 유용합니다.
",
- p3: "
최신 CSS 그라디언트는 Chrome, Firefox, Safari, Edge를 포함한 모든 주요 브라우저에서 널리 지원됩니다. 브라우저 엔진이 수학적으로 렌더링하기 때문에 고해상도 이미지에 비해 성능이 매우 뛰어납니다. 다만 색상 정지점이 수십 개인 매우 복잡한 그라디언트라면 저사양 기기에서 성능을 테스트하는 것이 좋습니다. 구형 브라우저(IE9 이하 등)에서는 단색 대체값을 제공하는 것이 권장됩니다.
",
- p4: "
\"회색 데드존\" 피하기: 멀리 떨어진 두 색상 사이를 전환할 때 중간 지점이 탁하거나 회색으로 보일 수 있습니다. 생동감 있는 중간 색상 정지점을 추가하면 그라디언트가 선명하게 유지됩니다.
미묘한 전환 사용: 가장 좋은 그라디언트는 거의 눈에 띄지 않는 경우가 많습니다. 색상환에서 서로 가까운 색상을 사용하면 세련되고 전문적인 느낌을 줍니다.
레이어링: background-image 속성을 사용해 여러 그라디언트를 겹겹이 쌓으면 매우 복잡하고 예술적인 효과를 만들 수 있습니다.
접근성: 그라디언트 위에 놓인 텍스트가 충분한 대비를 갖도록 하세요. 모든 색상 조합에 대해 WCAG 준수 여부를 확인하는 도구를 사용하세요.
개인 식별 정보(PII)는 특정 개인을 식별하는 데 사용할 수 있는 모든 데이터입니다. 여기에는 이름, 이메일 주소, 전화번호 같은 직접 식별자뿐 아니라 IP 주소, 위치, 신용카드 번호 같은 간접 식별자도 포함됩니다. 서버 로그의 맥락에서 PII는 요청 매개변수, 헤더, 오류 메시지에 흔히 나타납니다.
PII를 보호하는 것은 현대 데이터 보안의 핵심 요소이며 전 세계 다양한 법적 프레임워크에서 요구하고 있습니다.
",
- heading2: "규정 준수 요건 (GDPR/CCPA)",
- p2: "
유럽의 일반 데이터 보호 규정(GDPR)이나 미국의 캘리포니아 소비자 개인정보 보호법(CCPA) 같은 규제는 개인 데이터 처리 방식에 엄격한 규칙을 부과합니다. 이러한 법률은 조직이 설계 단계부터 프라이버시를 고려하고 개인 데이터의 수집 및 저장을 최소화하도록 요구합니다.
PII가 포함된 원시 로그를 제3자 지원 팀이나 개발자와 공유하면 규정 위반으로 이어질 수 있습니다. 안전한 환경을 벗어나기 전에 이 데이터를 마스킹하거나 삭제하는 것은 규정 준수를 유지하는 핵심 단계입니다.
",
- heading3: "마스킹 전략",
- p3: "
로그의 민감한 데이터를 처리하는 방법에는 여러 가지가 있습니다:
삭제(Redaction): 민감한 값을 [EMAIL_REDACTED] 같은 일반 자리 표시자로 바꿉니다. 로그를 공유할 때 가장 흔히 쓰이는 방법입니다.
익명화: 개인을 더 이상 식별할 수 없도록 데이터를 되돌릴 수 없게 변환합니다.
가명화: 식별자를 일관된 별칭(해시 등)으로 대체하여 사용자 신원을 알지 못해도 이벤트를 연관 지을 수 있게 합니다.
이 도구는 패턴 매칭을 사용해 일반적인 PII 형식을 즉시 찾아 바꾸는 삭제 방식에 중점을 둡니다.
",
- heading4: "프로 팁",
- p4: "
사용자 지정 키워드 필드를 사용하여 표준 패턴에 포함되지 않는 API 키, 세션 토큰, 사내 프로젝트 이름 같은 내부 식별자를 삭제하세요.
민감한 데이터가 정제 과정에서 절대 제3자 서버에 닿지 않도록 항상 로컬에서(이 도구처럼) 마스킹을 수행하세요.
여러 시스템에 걸쳐 로그를 연관 지어야 한다면 단순 삭제 대신 해시 도구와 함께 일관된 솔트를 사용해 추적성을 유지하는 것을 고려하세요.
애플리케이션 코드를 정기적으로 감사하여 애초에 PII가 로그에 기록되지 않도록 하세요. 소스 단계에서 로그를 관리하는 것이 최선의 방어입니다.
이메일 인증은 이메일 메시지의 출처에 대해 검증 가능한 정보를 제공하는 데 사용되는 기술의 모음입니다. 발신자의 신원을 검증함으로써 이 프로토콜들은 메일 서버가 정상적인 메시지와 스푸핑되거나 사기성(피싱 등) 메시지를 구분하는 데 도움을 줍니다. 현대 이메일 인증의 세 가지 축은 SPF, DKIM, DMARC입니다.
이메일이 수신되면 수신 서버가 이러한 검사를 수행하고 결과를 이메일 헤더에 기록하며, 이 도구는 그 헤더를 파싱해 보여줍니다.
",
- p2: "
SPF (Sender Policy Framework): 도메인을 대신하여 이메일을 보낼 권한이 있는 IP 주소와 도메인을 나열하는 DNS 기반 메커니즘입니다.
DKIM (DomainKeys Identified Mail): 이메일에 디지털 서명을 추가하여 메시지가 실제로 도메인 소유자가 보낸 것이며 전송 중 변조되지 않았음을 수신자가 확인할 수 있게 합니다.
DMARC (Domain-based Message Authentication, Reporting, and Conformance): SPF와 DKIM을 함께 묶습니다. 인증이 실패했을 때 수신자가 어떻게 해야 하는지(예: \"none\", \"quarantine\", \"reject\")를 알려주고, 수신자가 발신자에게 결과를 보고할 방법을 제공합니다.
",
- p3: "
피싱 이메일은 신뢰할 수 있는 출처에서 온 것처럼 보이기 위해 \"스푸핑\"을 자주 사용합니다. 이 분석기는 \"From\" 주소(사용자가 보는 것)와 \"Return-Path\"(메일이 실제로 온 곳) 간의 불일치 같은 일반적인 위험 신호를 찾습니다. 또한 이메일 본문의 URL을 추출하고 분석하여 Punycode(유사 도메인)나 호스트명 대신 IP 주소를 사용하는 등 의심스러운 링크를 식별합니다.
\"발견 사항\" 섹션을 검토하면 이러한 신호를 빠르게 파악하고 이메일과 상호작용해도 안전한지 판단할 수 있습니다.
",
- p4: "
항상 \"Authentication-Results\" 헤더를 먼저 확인하세요. 메일 제공업체가 수행한 보안 검사의 최종 결과를 담고 있습니다.
다른 사람과 보고서를 공유할 때는 민감한 이메일 주소와 IP 정보를 보호하기 위해 \"PII 마스킹\" 옵션을 사용하세요.
\"Reply-To\" 헤더를 주의 깊게 확인하세요. \"From\" 주소와 다르다면 비즈니스 이메일 침해(BEC) 공격의 신호일 수 있습니다.
이메일이 거친 경로를 확인하려면 \"라우팅 홉\"을 검토하세요. 알 수 없는 서버를 거치는 비정상적으로 길거나 복잡한 경로는 릴레이 남용의 신호일 수 있습니다.
",
- },
cheatsheet: {
title: "이메일 인증 빠른 참조",
h0: "이 검사들이 의미하는 것",
@@ -2491,16 +2199,6 @@ export default {
text9: "먼저 SQL을 붙여넣으세요.",
text10: "✓ 복사됨",
},
- edu: {
- heading1: "SQL을 포맷팅해야 하는 이유",
- p1: "SQL은 여러 조인, 서브쿼리, 중첩 조건을 다룰 때 특히 빠르게 복잡해지고 읽기 어려워질 수 있습니다. SQL 포맷팅에는 일관된 들여쓰기, 줄바꿈, 키워드 대문자화가 포함됩니다. 이를 통해 쿼리의 로직을 훨씬 쉽게 파악할 수 있어 디버깅, 코드 리뷰, 대규모 데이터베이스 스키마의 장기적인 유지보수에 필수적입니다. 잘 포맷된 쿼리는 수동 편집 중 논리적 오류가 발생할 가능성도 낮아집니다.",
- heading2: "이 도구 사용 방법",
- p2: "왼쪽의 SQL 입력 편집기에 원본 SQL 쿼리를 붙여넣으세요. 데이터베이스 방언(Postgres 또는 MySQL)과 원하는 키워드 대소문자(대문자 또는 소문자)를 선택하세요. 포맷 버튼을 클릭하여 적절한 들여쓰기와 간격으로 쿼리를 정리하세요. 검증 버튼을 사용해 닫히지 않은 따옴표나 불균형한 괄호 같은 일반적인 구조적 문제를 확인하세요. 복사를 클릭해 포맷된 SQL을 클립보드에 저장하거나 지우기로 다시 시작하세요.",
- heading3: "일반적인 사용 사례",
- p3: "풀 리퀘스트 제출 전 지저분한 SQL을 정리하는 코드 리뷰. ORM이 생성한 쿼리를 정리하여 데이터베이스에 실제로 실행되는 내용을 정확히 파악하는 디버깅. 기술 가이드, 위키, README 파일을 위한 명확하고 읽기 쉬운 예제를 만드는 문서화. 오래되고 정리되지 않은 스크립트를 최신의 읽기 쉬운 스타일로 빠르게 리팩터링하는 레거시 정리.",
- heading4: "프로 팁",
- p4: "WITH 절과 함께 공통 테이블 표현식(CTE)을 사용해 복잡한 쿼리를 더 작고 관리하기 쉬운 부분으로 나누세요. 쿼리의 의도를 명확히 하기 위해 테이블과 열에는 항상 설명적인 별칭을 사용하세요. 구성 파일이나 명령줄 도구에서 사용하기 위해 SQL을 한 줄로 압축해야 한다면 축소 버튼을 사용하세요.",
- },
cheatsheet: {
title: "SQL 포맷팅 팁",
h0: "빠른 개선 포인트",
@@ -2569,16 +2267,6 @@ export default {
text15: "참고: 안전을 위해 값은 마스킹됩니다. Diff는 휴리스틱이며 주석/순서는 포함하지 않습니다.",
text16: "✓ 복사됨",
},
- edu: {
- heading1: "환경 변수 모범 사례",
- heading2: "비밀 관리",
- heading3: ".env 보안",
- heading4: "프로 팁",
- p1: "
환경 변수는 코드와 설정을 엄격히 분리할 것을 주장하는 \"Twelve-Factor App\" 방법론의 핵심 요소입니다. 환경 변수를 사용하면 설정 값만 변경하여 동일한 코드를 여러 환경(개발, 스테이징, 프로덕션)에서 실행할 수 있습니다.
모범 사례로는 설명적인 대문자 이름 사용(예: DATABASE_URL), 중요하지 않은 설정에 대한 기본값 제공, 그리고 민감한 정보를 소스 관리에 직접 하드코딩하지 않는 것이 있습니다.
",
- p2: "
비밀(Secret)은 API 키, 데이터베이스 비밀번호, 개인 인증서 같은 민감한 정보를 담는 특수한 범주의 환경 변수입니다. 이를 안전하게 관리하는 것은 데이터 유출을 방지하는 데 매우 중요합니다. 프로덕션 환경에서는 AWS Secrets Manager, HashiCorp Vault, Cloudflare Secrets 같은 전용 비밀 관리 서비스를 사용해야 합니다.
로컬 개발에서는 .env 파일이 흔히 사용되지만, git 저장소에 절대 커밋해서는 안 됩니다. .gitignore 파일에 항상 *.env를 추가하세요.
",
- p3: "
디버깅을 위해 .env 파일을 팀원과 공유할 때는 프로덕션 비밀이 실수로 노출될 위험이 큽니다. 이 도구는 \"민감한 값 마스킹\" 기능을 제공하여 이러한 위험을 줄여줍니다. 휴리스틱을 사용해 SECRET, TOKEN, PASSWORD 같은 키를 식별하고 값을 마스킹된 버전(예: ab...yz (32))으로 대체합니다.
이를 통해 실제 비밀을 유출하지 않고도 환경 파일의 구조와 민감하지 않은 값을 비교할 수 있습니다.
",
- p4: "
\"바꾸기\" 버튼을 사용해 환경 A와 환경 B 사이의 비교 방향을 빠르게 뒤집으세요.
AWS_나 DB_로 시작하는 모든 키처럼 특정 변수 그룹에 집중하려면 \"키 필터링\" 입력을 활용하세요.
다른 개발자에게 앱 실행에 필요한 변수를 알려주기 위해 저장소에 더미 값이 담긴 .env.example 파일을 항상 포함하세요.
환경 변수는 일반적으로 문자열이라는 점을 기억하세요. 앱에 불리언이나 숫자가 필요하다면 코드에서 값을 올바르게 파싱하는지 확인하세요.
",
- },
cheatsheet: {
title: "Dotenv 참고 사항",
h0: "마스킹 전략",
@@ -2638,16 +2326,6 @@ export default {
text7: "아직 미리보기가 없습니다.",
text8: "✓ 복사됨",
},
- edu: {
- heading1: "SVG란 무엇인가요?",
- p1: "SVG(Scalable Vector Graphics)는 상호작용과 애니메이션을 지원하는 2차원 그래픽을 위한 XML 기반 벡터 이미지 형식입니다. JPEG나 PNG 같은 래스터 형식과 달리 SVG는 수학적 경로로 정의되므로 품질 손실 없이 어떤 크기로도 확대할 수 있습니다. 덕분에 로고, 아이콘, 일러스트에 이상적이며, 모바일 화면부터 고해상도 데스크톱 모니터까지 선명하게 유지됩니다.",
- heading2: "이 도구 사용 방법",
- p2: "왼쪽의 SVG 입력 텍스트 영역에 SVG 코드를 붙여넣으세요. 미리보기를 클릭해 그래픽을 확인하고 색상 팔레트를 추출하세요. 최적화 또는 축소 버튼을 사용해 마크업을 정리하고 파일 크기를 줄이세요. 선택적으로 색상 패널에 새 값을 입력하고 적용을 클릭해 특정 색상을 바꾸세요. 복사 또는 다운로드를 클릭해 정제되고 최적화된 SVG를 저장하세요.",
- heading3: "일반적인 사용 사례",
- p3: "Figma나 Illustrator 같은 디자인 도구에서 내보낸 SVG를 정리하는 아이콘 관리. 브랜드 팔레트에 맞게 아이콘 세트의 색상을 빠르게 변경하는 테마 설정. 신뢰할 수 없는 출처의 SVG에서 잠재적 스크립트나 외부 참조를 제거하는 보안. 인라인 그래픽의 크기를 줄이고 페이지 로드 시간을 개선하기 위해 SVG 마크업을 축소하는 성능 최적화.",
- heading4: "프로 팁",
- p4: "currentColor 버튼을 사용해 명시적인 fill과 stroke를 모두 currentColor로 변환하면 CSS로 SVG 스타일을 쉽게 지정할 수 있습니다. 프로덕션에서 사용하기 전에 항상 SVG를 최적화하여 가능한 한 작게 만드세요. 디자인 도구에서 SVG를 만들 때는 최적화 전에 윤곽선(Outline Stroke)과 경로 단순화(Simplify Path) 기능을 사용해 생성된 코드의 복잡도를 줄이세요.",
- },
cheatsheet: {
title: "SVG 보안 참고 사항",
h0: "정제(Sanitization)",
@@ -2801,16 +2479,6 @@ export default {
text28: "스캔을 클릭해 시크릿을 찾으세요.",
text29: "✓ 복사됨",
},
- edu: {
- heading1: "비밀 유출이란 무엇인가요?",
- p1: "비밀 유출은 API 키, 비밀번호, 개인 토큰 같은 민감한 정보가 실수로 버전 관리에 커밋되거나 공개 포럼에 공유될 때 발생합니다. 이러한 유출은 무단 접근, 데이터 유출, 금전적 손실로 이어질 수 있습니다. 이 도구는 코드를 공유하거나 커밋하기 전에 브라우저에서 로컬로 일반적인 비밀 패턴을 식별하는 데 도움을 줍니다.",
- heading2: "이 도구 사용 방법",
- p2: "입력란에 코드, 구성, 또는 로그 파일을 붙여넣으세요. 스캔 버튼을 클릭해 텍스트에서 잠재적인 비밀을 분석하세요. 감지된 각 항목에 대한 발견 사항과 권장 사항을 검토하세요. 삭제된 내용 복사 버튼을 사용해 비밀이 마스킹된, 공유해도 안전한 텍스트 버전을 얻으세요.",
- heading3: "일반적인 사용 사례",
- p3: "커밋 전 코드를 스캔하여 비밀이 포함되지 않았는지 확인하는 커밋 전 검사. 지원팀이나 팀원과 공유하기 전에 로그의 민감한 토큰을 마스킹하는 로그 삭제. 하드코딩된 자격 증명이 있는지 구성 파일을 빠르게 감사하는 보안 감사.",
- heading4: "프로 팁",
- p4: "자격 증명이 유출된 것을 발견하면 항상 즉시 교체하세요. 소스 코드에 비밀을 하드코딩하는 대신 환경 변수나 비밀 관리자를 사용하세요. 더 철저한 스캔을 위해 낮은 심각도 패턴 포함을 활성화할 수 있지만, 오탐이 늘어날 수 있음을 감안하세요.",
- },
cheatsheet: {
title: "비밀을 발견했을 때 해야 할 일",
h0: "즉시 취해야 할 조치",
@@ -2907,16 +2575,6 @@ export default {
text15: "✓ 유효한 JWKS 구조 (",
text16: "JWK를 붙여넣으세요.",
},
- edu: {
- heading1: "JWT란 무엇인가요?",
- p1: "JSON 웹 토큰(JWT)은 두 당사자 사이에 전달할 클레임을 표현하는 간결하고 URL에 안전한 방식입니다. JWT는 점으로 구분된 Base64URL로 인코딩된 세 부분, 즉 헤더(알고리즘과 타입), 페이로드(클레임), 서명으로 구성됩니다. 서명은 토큰이 변조되지 않았음을 보장합니다. JWT는 웹 API에서 인증과 정보 교환에 흔히 사용됩니다. 표준 클레임에는 sub(주체), iss(발급자), aud(대상), exp(만료), nbf(유효 시작), iat(발급 시간), jti(JWT ID)가 있습니다.",
- heading2: "JWT 알고리즘",
- p2: "HS256/384/512는 SHA-2와 공유 비밀을 사용하는 HMAC을 사용합니다 — 단순하지만 양쪽 모두 같은 키를 가지고 있어야 합니다. RS256/384/512는 RSA PKCS#1 v1.5 비대칭 서명을 사용합니다 — 서비스가 공개 키만 있으면 되는 마이크로서비스 아키텍처에 이상적입니다. ES256/384/512는 NIST 곡선을 사용하는 ECDSA로 동등한 보안 수준에서 RSA보다 서명 크기가 작습니다. PS256/384/512는 RSA-PSS를 사용하는 확률적 변형으로, 최신 시스템에서 RS* 계열보다 선호됩니다.",
- heading3: "JWK와 JWKS",
- p3: "JSON 웹 키(JWK)는 암호화 키를 나타내는 JSON 구조입니다. JWK 세트(JWKS)는 keys 속성 아래에 JWK 배열을 담은 JSON 구조입니다. 서비스는 잘 알려진 URL(예: /.well-known/jwks.json)에 JWKS를 공개하여, 클라이언트가 별도의 키 교환 없이도 JWT 검증에 필요한 공개 키를 가져올 수 있게 합니다. JWKS의 키는 JWT 헤더가 참조하는 kid(키 ID)로 식별됩니다.",
- heading4: "보안 모범 사례",
- p4: "exp, nbf, iss, aud 클레임은 항상 서버 측에서 검증하세요. 프로덕션에서는 절대 alg: none 알고리즘을 사용하지 마세요 — 모든 서명 보호가 사라집니다. 여러 서비스가 토큰을 검증해야 한다면 HMAC보다 비대칭 알고리즘(RS*, ES*, PS*)을 선호하세요. 키를 정기적으로 교체하고 kid를 사용해 각 토큰에 서명한 키를 식별하세요. 개인 키는 안전하게 보관하고 버전 관리에 절대 커밋하지 마세요. 수명이 긴 JWT보다는 짧은 만료 시간과 리프레시 토큰을 사용하세요.",
- },
},
"encoding-workbench": {
name: "인코딩 워크벤치",
@@ -2980,16 +2638,6 @@ export default {
js: {
noLayers: "인식 가능한 인코딩 레이어를 찾지 못했습니다.",
},
- edu: {
- heading1: "인코딩과 해싱의 차이",
- heading2: "이 도구 사용 방법",
- heading3: "다층 인코딩 설명",
- heading4: "해시 알고리즘 가이드",
- p1: "
인코딩은 데이터를 되돌릴(디코딩할) 수 있는 다른 표현으로 변환합니다. 일반적인 형식으로는 텍스트 채널을 통해 바이너리 데이터를 전송하는 데 사용되는 Base64, URL 인코딩, HTML 엔티티 인코딩, 16진수가 있습니다. 인코딩은 암호화가 아니며 기밀성을 제공하지 않습니다.
해싱은 단방향 수학적 변환입니다. 암호화 해시 함수는 어떤 입력이든 받아 고정 길이의 지문을 생성합니다. 해시를 역산하여 원본 입력을 얻을 수 없습니다. 해시는 파일 무결성 검증, 안전한 비밀번호 저장, 디지털 서명 생성에 사용됩니다.
",
- p2: "
인코딩 / 디코딩 탭: 텍스트를 붙여넣고 작업(Base64, URL, HTML, Hex)을 선택하거나, 자동 계층 감지를 클릭하여 중첩된 여러 인코딩을 자동으로 풀어보세요.
해시 탭: 텍스트를 입력하거나 파일을 선택하고 알고리즘을 선택한 후 모두 해시를 클릭하세요. HMAC 모드를 활성화하면 공유 비밀로 키드 해시를 계산할 수 있습니다.
식별 탭: 알 수 없는 해시나 인코딩된 문자열을 붙여넣고 식별을 클릭하여 신뢰도와 함께 가능성 있는 알고리즘을 확인하세요.
",
- p3: "
실제 데이터는 여러 번 인코딩되는 경우가 많습니다. 예를 들어 페이로드가 URL 인코딩된 후 Base64로 인코딩되고, 다시 16진수 문자열 안에 들어갈 수 있습니다. 자동 계층 감지 기능은 입력 패턴을 검사하고 각 디코딩을 순서대로 시도하며, 각 단계를 카드로 시각화하여 데이터가 정확히 어떻게 감싸져 있었는지 확인할 수 있게 합니다.
PKCE(Proof Key for Code Exchange, RFC 7636)는 원래 클라이언트 시크릿을 안전하게 저장할 수 없는 모바일 및 네이티브 앱을 위해 설계되었습니다. 클라이언트가 무작위 code_verifier를 생성하고, 이로부터 code_challenge를 도출(SHA-256 + base64url)한 다음, 인증 요청과 함께 챌린지를 전송하는 방식으로 작동합니다. 인증 코드를 토큰으로 교환할 때 클라이언트는 원래의 code_verifier를 전송합니다. 인증 서버는 이것이 이전 챌린지와 일치하는지 검증하여, 토큰 요청이 흐름을 시작한 것과 동일한 클라이언트에서 왔음을 증명합니다.
클라이언트 시크릿을 가진 기밀 클라이언트(서버 측 앱)라도, OAuth 2.1은 이제 인증 코드 가로채기 공격에 대한 방어책으로 PKCE 사용을 권장합니다.
",
- heading2: "암묵적 흐름은 왜 지원이 중단되었나요?",
- p2: "
암묵적 흐름(response_type=token)은 액세스 토큰을 URL 프래그먼트에 직접 반환하는, 싱글 페이지 앱을 위한 지름길로 설계되었습니다. 이는 심각한 문제를 일으킵니다. URL의 토큰이 브라우저 기록, 서버 로그, 리퍼러 헤더에 남으며, 이 흐름은 토큰 주입 공격에도 취약합니다. OAuth 2.0 보안 모범 사례(RFC 9700)와 OAuth 2.1은 암묵적 흐름을 명시적으로 제거하고, 클라이언트 시크릿 없이도 SPA가 안전하게 사용할 수 있는 인증 코드 + PKCE를 대신 권장합니다.
JSON (JavaScript Object Notation) é um formato leve de troca de dados, fácil de ler e escrever para humanos e fácil de analisar e gerar para máquinas. É baseado em um subconjunto do padrão JavaScript. O JSON é um formato de texto completamente independente de linguagem, mas usa convenções familiares aos programadores das linguagens da família C.
Essas propriedades tornam o JSON ideal para troca de dados em aplicações web, APIs e arquivos de configuração. Ele se tornou o padrão de fato para troca de dados na web, substituindo amplamente o XML por seu menor tamanho e melhor desempenho.
",
- heading2: "Como usar esta ferramenta",
- p2: "
Cole seus dados JSON brutos ou desorganizados no editor à esquerda.
Clique em Format para embelezar o código com indentação adequada e destaque de sintaxe.
Alternativamente, use Minify para remover todos os espaços em branco para uso em produção.
Verifique o indicador de Status para garantir que seu JSON é válido; se houver um erro, a ferramenta destacará a linha exata.
Clique em Copy para salvar o resultado formatado na área de transferência ou Clear para recomeçar.
",
- heading3: "Casos de uso comuns",
- p3: "
Depuração de API: Formatar rapidamente respostas JSON ilegíveis de APIs REST para inspecionar estruturas de dados.
Validação de configuração: Garantir que seus arquivos package.json, tsconfig.json ou outros arquivos de configuração estejam sintaticamente corretos.
Preparação de dados: Minificar dados JSON antes de incorporá-los em código ou enviá-los pela rede para economizar largura de banda.
Aprendizado & Documentação: Usar a saída formatada para criar exemplos claros para documentação técnica ou tutoriais.
",
- heading4: "Dicas avançadas",
- p4: "
Use o botão Validate se quiser apenas verificar erros de sintaxe sem alterar a formatação da sua entrada.
Preste atenção à estatística de Profundidade Máxima para identificar estruturas excessivamente complexas ou profundamente aninhadas que podem causar problemas de desempenho.
Sempre use aspas duplas para chaves e valores de string, pois aspas simples são inválidas no JSON padrão.
",
- },
},
"jwt-decoder": {
name: "Inspetor JWT",
@@ -139,22 +129,6 @@ export default {
status5: "Algoritmo: ",
status6: "Falha ao decodificar",
},
- edu: {
- heading1: "O que é JWT?",
- p1: "
JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma forma compacta e autocontida de transmitir informações com segurança entre partes como um objeto JSON. Essa informação pode ser verificada e é confiável porque é assinada digitalmente. JWTs podem ser assinados usando um segredo (com o algoritmo HMAC) ou um par de chaves pública/privada usando RSA ou ECDSA.
Devido ao seu tamanho compacto, JWTs são comumente usados em cenários de autenticação e troca de informações, como tokens Bearer em cabeçalhos HTTP Authorization.
",
- heading2: "Como usar esta ferramenta",
- p2: "
Cole seu token: copie seu JWT codificado (header.payload.signature) e cole-o no campo de entrada.
Decodificação automática: a ferramenta detecta automaticamente o token e decodifica seus componentes em tempo real.
Inspecione o Header: revise o algoritmo (alg) e o tipo de token (typ) na seção Header.
Analise o Payload: examine as claims, como expiração (exp), emissor (iss) e assunto (sub) na seção Payload.
Verifique as claims: confira a caixa de Análise das claims para ver datas legíveis e o status de validação.
",
- heading3: "Casos de uso comuns",
- p3: "
Autenticação: inspecionar tokens de identidade ou de acesso de provedores como Auth0, Firebase ou AWS Cognito.
Depuração: investigar por que um token está sendo rejeitado pelo seu backend (por exemplo, verificar se ele expirou).
Auditoria de segurança: verificar se dados sensíveis não estão sendo expostos acidentalmente no payload não criptografado.
Desenvolvimento: visualizar rapidamente o conteúdo de um token durante o desenvolvimento de APIs sem escrever código personalizado.
",
- heading4: "Dicas avançadas",
- p4: "
JWT não é criptografado: lembre-se de que os JWTs padrão são apenas assinados, não criptografados. Qualquer pessoa com o token pode ler o payload. Nunca armazene senhas ou chaves privadas em um JWT.
Verifique a expiração: sempre verifique a claim exp. Se um token estiver expirado, sua aplicação deve rejeitá-lo.
Use HTTPS: como os JWTs geralmente são usados para autenticação, eles devem sempre ser transmitidos por conexões HTTPS seguras para evitar interceptação.
",
- heading5: "Estrutura do token (header.payload.signature)",
- p5: "
Um JWT normalmente consiste em três partes separadas por pontos:
Header: geralmente consiste em duas partes: o tipo do token (JWT) e o algoritmo de assinatura usado (por exemplo, HS256 ou RS256).
Payload: contém as claims — declarações sobre uma entidade (normalmente o usuário) e dados adicionais.
Signature: criada a partir do header codificado, do payload codificado, de um segredo e do algoritmo especificado no header, assinando esse conjunto.
",
- heading6: "Considerações de segurança",
- p6: "
Embora os JWTs sejam assinados para garantir integridade, eles normalmente NÃO são criptografados. Isso significa que qualquer pessoa com o token pode decodificar o header e o payload para ler as informações internas. Nunca armazene informações sensíveis, como senhas ou chaves privadas, no payload de um JWT.
Além disso, sempre verifique a claim exp (expiração) para evitar ataques de replay e garanta que seu servidor valide a assinatura antes de confiar nos dados do payload.
",
- heading7: "Dicas avançadas",
- p7: "
Use a claim exp para definir um tempo de expiração curto para tokens de acesso e minimizar o impacto de um token roubado.
Sempre use HTTPS para transmitir JWTs e evitar interceptação por ataques man-in-the-middle.
Se estiver usando algoritmos assimétricos (como RS256), você pode compartilhar sua chave pública para que outros serviços verifiquem seus tokens sem conseguir criá-los.
Verifique a claim nbf (Not Before) se quiser emitir um token que só se torna válido em um momento futuro específico.
",
- },
cheatsheet: {
title: "Referência rápida de JWT",
h0: "Estrutura",
@@ -193,16 +167,6 @@ export default {
text0: "✓ Copiado!",
tpl1: "GUID:",
},
- edu: {
- heading1: "O que é um UUID?",
- p1: "Um Identificador Único Universal (UUID) é um número de 128 bits usado para identificar informações de forma exclusiva em sistemas computacionais. Eles são projetados para serem gerados de forma independente, sem uma autoridade central, mantendo uma probabilidade de colisão desprezível.",
- heading2: "Como usar esta ferramenta",
- p2: "Selecione a versão do UUID (v1 para baseado em tempo, v4 para aleatório) e a quantidade de IDs que você precisa. Clique em Generate para criar uma lista de identificadores únicos prontos para uso no seu banco de dados ou aplicação.",
- heading3: "Casos de uso comuns",
- p3: "Chaves primárias em bancos de dados distribuídos, identificadores de sessão, rastreamento de transações e nomeação de arquivos ou recursos temporários onde a unicidade é essencial entre múltiplos sistemas.",
- heading4: "Dicas avançadas",
- p4: "O UUID v4 é a escolha mais comum para IDs únicos de propósito geral, pois depende de aleatoriedade de alta qualidade. Use o v1 se precisar ordenar os IDs pela hora de criação.",
- },
},
"password-generator": {
name: "Gerador de Senhas",
@@ -265,24 +229,6 @@ export default {
status6: "Fraca",
text1: "Insira um endereço de e-mail base válido.",
},
- edu: {
- heading1: "O que torna uma senha segura?",
- p1: "
Uma senha segura é sua primeira linha de defesa contra acesso não autorizado. Na era moderna da computação de alta velocidade, segurança é definida pela entropia — a medida de aleatoriedade e imprevisibilidade de uma string. Uma senha forte deve ser longa (pelo menos 16 caracteres), única para cada conta e composta por uma combinação diversa de tipos de caracteres, incluindo maiúsculas, minúsculas, números e símbolos.
Evite usar informações pessoais como datas de aniversário, nomes de animais de estimação ou palavras comuns do dicionário. Até substituições que parecem complexas, como P@ssw0rd123, são facilmente quebradas por ferramentas modernas de força bruta que usam enormes dicionários de padrões comuns.
",
- heading2: "Como usar esta ferramenta",
- p2: "
Selecione o modo: Escolha entre Senha, Nome de usuário, Frase-senha ou Alias de e-mail conforme sua necessidade.
Ajuste o comprimento: Use o controle deslizante para definir o comprimento desejado. Para senhas, 16+ caracteres é recomendado para alta segurança.
Configure as opções: Ative ou desative conjuntos de caracteres (símbolos, números, etc.) ou estilos (legível vs. seguro).
Gerar: Clique no botão Gerar para criar sua credencial única.
Copiar: Use o ícone de cópia para mover o resultado com segurança para sua área de transferência ou gerenciador de senhas.
",
- heading3: "Casos de uso comuns",
- p3: "
Segurança de conta: Gerar senhas únicas e de alta entropia para cada serviço online que você usa.
Administração de sistemas: Criar senhas temporárias seguras para novos usuários ou contas de serviço.
Proteção de privacidade: Usar aliases Plus (ex.: usuario+servico@domain.com) para rastrear quais serviços vendem seus dados ou filtrar spam.
Segurança memorável: Usar o gerador de frase-senha para senhas mestras que precisam ser digitadas manualmente, mas ainda resistem a ataques.
",
- heading4: "Dicas avançadas",
- p4: "
Use um gerenciador de senhas: Nunca tente memorizar senhas complexas. Use esta ferramenta para gerá-las e armazene-as em um gerenciador confiável como Bitwarden, 1Password ou KeePassXC.
Entropia antes de complexidade: O comprimento frequentemente é mais importante que a variedade de caracteres. Uma senha de 20 caracteres em minúsculas é muitas vezes mais difícil de quebrar do que uma de 8 caracteres complexos.
Troque após vazamentos: Se um serviço que você usa for comprometido, use este gerador para criar uma senha completamente nova e sem relação imediatamente.
",
- heading5: "O que torna uma senha segura?",
- p5: "
Uma senha segura é sua primeira linha de defesa contra acesso não autorizado. Na era moderna da computação de alta velocidade, segurança é definida pela entropia. Uma senha forte deve ser longa, única e diversificada.
",
- heading6: "Entropie explicada",
- p6: "
Entropia é uma medida da aleatoriedade e imprevisibilidade de uma senha, geralmente expressa em bits. Quanto maior a entropia, mais forte a senha. Nosso gerador calcula a entropia em tempo real para oferecer uma medida objetiva da força da sua senha.
",
- heading7: "Boas práticas",
- p7: "
Nunca reutilize senhas: Use uma senha única para cada conta.
Use um gerenciador de senhas: Como humanos não conseguem lembrar dezenas de senhas complexas, use um gerenciador confiável.
Ative a MFA: A Autenticação Multifator adiciona uma segunda camada crítica de segurança.
Evite informações pessoais: Nunca inclua nomes, datas de aniversário ou palavras comuns.
",
- heading8: "Dicas avançadas",
- p8: "
Use o modo Frase-senha para contas que você precisa digitar manualmente; são mais fáceis de lembrar mas ainda muito seguras.
Para segurança máxima, gere a senha mais longa permitida pelo serviço (frequentemente 64 ou 128 caracteres).
Audite regularmente suas senhas salvas usando os recursos de verificação de segurança integrados do seu gerenciador.
Considere usar aliases Plus (ex.: usuario+servico@gmail.com) para rastrear quais serviços vendem seus dados.
",
- },
},
"hash-calculator": {
name: "Calculadora de Hash",
@@ -350,16 +296,6 @@ export default {
tpl4: "Aguardando entrada...",
text2: "Calculado: ",
},
- edu: {
- heading1: "O que é hashing?",
- p1: "
O hashing criptográfico é um processo matemático que transforma qualquer dado de entrada (texto ou arquivos) em uma string de tamanho fixo, geralmente um número hexadecimal. Essa impressão digital é única para a entrada; até mesmo a mudança de um único bit nos dados de origem resultará em um hash completamente diferente, um fenômeno conhecido como efeito avalanche.
Diferente da criptografia, o hashing é uma função de mão única. Não é possível reverter um hash para recuperar os dados originais. Isso o torna ideal para verificar a integridade dos dados, armazenar senhas com segurança (quando combinado com salts) e identificar arquivos sem expor seu conteúdo.
",
- heading2: "Como usar esta ferramenta",
- p2: "
Selecione o tipo de entrada: escolha a aba Text para strings ou a aba File para arquivos locais.
Forneça a entrada: cole seu texto ou arraste e solte seu arquivo na área de trabalho.
HMAC opcional: digite uma chave secreta no campo HMAC se precisar gerar um hash com chave para autenticação.
Revise os resultados: a ferramenta calcula automaticamente múltiplas variantes de hash (SHA-256, SHA-512 etc.) em tempo real.
Verifique a integridade: use a aba Verify para comparar um hash conhecido com sua entrada e detectar adulterações.
",
- heading3: "Casos de uso comuns",
- p3: "
Verificação de software: conferir o checksum SHA-256 de um instalador baixado para garantir que não foi corrompido ou modificado por terceiros.
Integridade de dados: gerar hashes de registros de banco de dados ou arquivos de configuração para detectar alterações não autorizadas ao longo do tempo.
Segurança de senhas: entender como diferentes algoritmos (como SHA-512) transformam texto simples em representações seguras.
Perícia digital: identificar arquivos duplicados ou verificar se evidências não foram alteradas.
",
- heading4: "Dicas avançadas",
- p4: "
Prefira SHA-256 ou superior: sempre use SHA-256 ou SHA-512 para tarefas sensíveis à segurança. MD5 e SHA-1 são criptograficamente quebrados e devem ser usados apenas para compatibilidade legada.
Use HMAC para autenticidade: se precisar verificar tanto a integridade quanto a identidade do remetente, use HMAC com uma chave secreta compartilhada.
Verifique a origem: ao verificar downloads, sempre obtenha o hash esperado de um site oficial confiável e protegido por HTTPS.
",
- },
cheatsheet: {
title: "Referência de algoritmos de hash",
h0: "Comparação de algoritmos",
@@ -435,16 +371,6 @@ export default {
text5: "Use pelo menos /",
text6: "IPv6 /",
},
- edu: {
- heading1: "O que é CIDR?",
- heading2: "Como usar esta ferramenta",
- heading3: "Casos de uso comuns",
- heading4: "Dicas avançadas",
- p1: "Classless Inter-Domain Routing (CIDR) é um método para alocar endereços IP e roteamento IP. Substituiu o sistema mais antigo baseado em classes (A, B e C) para fornecer mais flexibilidade e eficiência na distribuição de endereços.",
- p2: "Insira um endereço IP com um prefixo (ex.: 192.168.1.0/24) ou use o controle deslizante para ajustar o comprimento do prefixo. Clique em \"Run analysis\" para ver detalhes da rede, intervalos de hosts utilizáveis e representações binárias.",
- p3: "Planejamento de sub-redes de rede para infraestrutura em nuvem (VPCs), solução de problemas de roteamento, cálculo da capacidade de hosts para um determinado prefixo e conversão entre CIDR e máscaras de sub-rede.",
- p4: "Lembre-se de que no IPv4, o primeiro e o último endereço em uma sub-rede são tipicamente reservados para o ID de rede e o endereço de broadcast. No IPv6, as sub-redes são quase sempre /64 para redes locais padrão.",
- },
cheatsheet: {
title: "Referência rápida de sub-redes",
h0: "Sub-redes comuns",
@@ -619,16 +545,6 @@ export default {
tpl3: "Alterar padrões:",
tpl4: "Nenhuma porta encontrada para sua busca.",
},
- edu: {
- heading1: "Guia de categorias de portas e segurança",
- p1: "Portas bem conhecidas (0-1023) são atribuídas pela IANA e exigem privilégios de root em sistemas Unix. Portas registradas (1024-49151) são usadas por aplicações. Portas dinâmicas/efêmeras (49152-65535) são usadas para conexões do lado do cliente. Entender as faixas de portas é essencial para a configuração de firewall e a segurança de rede.",
- heading2: "Como usar esta ferramenta",
- p2: "Busque por número de porta ou nome do serviço para encontrar detalhes do protocolo e níveis de risco de segurança. Filtre por categoria (Well-Known, Registered, Dynamic) ou protocolo (TCP/UDP) para refinar os resultados. Clique em qualquer linha para ver detalhes completos, incluindo vulnerabilidades comuns e recomendações de hardening.",
- heading3: "Casos de uso comuns",
- p3: "Configuração de regras de firewall, solução de problemas de rede, identificação de portas abertas inesperadas durante auditorias de segurança e referência rápida para atribuições de portas de protocolo.",
- heading4: "Dicas avançadas",
- p4: "Use o filtro de risco para identificar rapidamente portas de alto risco na sua rede. A seção Top 50 Most Common Ports oferece uma visão instantânea dos serviços mais usados.",
- },
cheatsheet: {
c2: "\n
\n
Feche portas não utilizadas: Reduza a superfície de ataque desativando serviços desnecessários
\n
Use firewalls: Implemente controles de acesso em nível de rede
\n
Monitore o tráfego: Registre conexões a portas sensíveis (22, 443, 3389)
\n
Prefira protocolos criptografados: Use SSH (22) em vez de Telnet (23) e SFTP em vez de FTP
\n
Altere os padrões: Considere portas não padrão para SSH/RDP (segurança por obscuridade)
\n
",
c1: "\n
\n
Porta
Serviço
Risco
\n
21
FTP
Transferências de arquivos sem criptografia
\n
23
Telnet
Autenticação em texto puro
\n
25
SMTP
Risco de retransmissão de spam
\n
53
DNS
Ataques de amplificação DDoS
\n
445
SMB
Propagação de ransomware
\n
3389
RDP
Ataques de força bruta
\n
",
@@ -872,16 +788,6 @@ export default {
text4: "Avisos",
alert0: "Gere uma configuração primeiro",
},
- edu: {
- heading1: "Sobre o WireGuard",
- p1: "O WireGuard é um protocolo VPN moderno e de alto desempenho que usa criptografia de última geração. Ele foi projetado para ser mais simples e rápido que protocolos mais antigos como OpenVPN e IPsec, com uma superfície de ataque muito menor devido à sua base de código mínima. O WireGuard agora faz parte do kernel do Linux e é suportado nativamente no Windows, macOS, iOS e Android.",
- heading2: "Como usar esta ferramenta",
- p2: "Selecione um template de topologia (Point-to-Point, Hub-and-Spoke, Site-to-Site ou Road Warrior) para pré-preencher uma configuração. Clique em Generate Keys para criar um novo par de chaves localmente no seu navegador. Preencha os campos obrigatórios e clique em Generate Config para gerar o arquivo de configuração do WireGuard. Use Download .conf para salvar o arquivo ou Generate QR para criar um código QR para importação móvel.",
- heading3: "Casos de uso comuns",
- p3: "VPN de acesso remoto para funcionários que se conectam às redes da empresa. VPN site a site para conectar redes de filiais. Servidor VPN pessoal para navegação segura em Wi-Fi público. Tunelamento de dispositivos IoT para comunicação segura entre dispositivos embarcados.",
- heading4: "Dicas avançadas",
- p4: "Use PersistentKeepalive = 25 em clientes atrás de NAT para manter o túnel ativo quando não há tráfego. PresharedKey adiciona uma camada extra de criptografia simétrica para resistência pós-quântica. AllowedIPs = 0.0.0.0/0 roteia todo o tráfego pelo túnel (túnel completo), enquanto CIDRs específicos criam um túnel dividido.",
- },
cheatsheet: {
title: "Referência rápida do WireGuard",
h0: "Campos da interface",
@@ -1025,14 +931,6 @@ export default {
tpl6: "Exemplo:",
tpl7: "Clique em qualquer campo do diagrama para ver detalhes.",
},
- edu: {
- heading1: "O que são cabeçalhos de protocolo?",
- p1: "Cabeçalhos de protocolo são dados estruturados que precedem o payload nos pacotes de rede. Eles contêm informações de controle, como endereços de origem e destino, tipos de protocolo, números de sequência e checksums. Entender a estrutura dos cabeçalhos é essencial para depuração de rede, análise de pacotes e implementação de protocolos.",
- heading2: "Como usar esta ferramenta",
- p2: "Selecione um protocolo nas abas para ver a estrutura do seu cabeçalho. Cada bloco colorido representa um campo com seu tamanho indicado. Clique em qualquer campo para ver informações detalhadas, incluindo o nome e a descrição do campo, o deslocamento em bits/bytes, valores comuns e seus significados, e a referência da RFC. Use o analisador de hex dump para analisar capturas de pacotes reais colando a saída em hex de ferramentas como tcpdump ou Wireshark.",
- heading3: "Casos de uso comuns",
- p3: "Análise de pacotes para entender a estrutura do tráfego de rede capturado, aprendizado de protocolos como auxílio visual para estudar protocolos de rede, depuração para identificar cabeçalhos malformados ou valores de campo incorretos, e referência de desenvolvimento ao implementar protocolos de rede.",
- },
cheatsheet: {
c3: "\n
\n
Valor
Protocolo
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
Campo
Tamanho
Descrição
\n
Source Port
2 bytes
Número da porta do remetente
\n
Dest Port
2 bytes
Número da porta do destinatário
\n
Seq Number
4 bytes
Número de sequência
\n
Ack Number
4 bytes
Número de confirmação
\n
Data Offset
4 bits
Comprimento do cabeçalho / 4
\n
Flags
9 bits
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2 bytes
Tamanho da janela de recepção
\n
",
@@ -1108,16 +1006,6 @@ export default {
tpl0: "Diferenças",
tpl1: "Nenhuma diferença encontrada (ou entrada vazia)",
},
- edu: {
- heading1: "O que é comparação de textos (diff)?",
- p1: "A comparação de textos (diffing) é o processo de comparar duas sequências de dados para identificar as diferenças entre elas. Ela destaca o que foi adicionado, removido ou modificado. Essa é uma operação fundamental no desenvolvimento de software, na análise de dados e na gestão de conteúdo, permitindo que os usuários acompanhem mudanças ao longo do tempo ou comparem versões diferentes de um documento.",
- heading2: "Algoritmos de diff",
- p2: "A maioria das ferramentas de diff de texto usa algoritmos baseados no problema da Maior Subsequência Comum (LCS). O objetivo é encontrar a maior sequência de elementos que aparecem em ambos os textos na mesma ordem relativa. Implementações comuns incluem o algoritmo de diff de Myers, que é altamente eficiente e usado pelo Git, e o algoritmo Hunt-McIlroy. Esses algoritmos calculam o número mínimo de edições necessárias para transformar um texto em outro.",
- heading3: "Casos de uso",
- p3: "Revisões de código para que desenvolvedores vejam exatamente o que mudou em um pull request. Sistemas de controle de versão como o Git armazenam o histórico como uma série de diffs para economizar espaço. Auditoria de conteúdo para redatores e editores que comparam rascunhos para garantir que todas as alterações solicitadas foram feitas. Validação de dados para comparar arquivos de configuração ou exportações de banco de dados em busca de discrepâncias.",
- heading4: "Dicas avançadas",
- p4: "Muitas ferramentas de diff têm opções para ignorar mudanças em indentação ou espaços no final das linhas, o que pode reduzir o ruído ao comparar código. Inclua algumas linhas de texto inalterado ao redor das diferenças (linhas de contexto) para entender o impacto das mudanças. Diffs no nível de palavra costumam ser mais úteis para prosa e documentos em linguagem natural, enquanto diffs no nível de linha são o padrão para código.",
- },
},
"regex-visualizer": {
name: "Visualizador de Regex",
@@ -1168,16 +1056,6 @@ export default {
tpl5: "Sem grupos",
tpl6: "Expressão regular inválida",
},
- edu: {
- heading1: "O que são expressões regulares?",
- p1: "Expressões regulares (regex) são padrões poderosos usados para casar combinações de caracteres em strings. São ferramentas essenciais para processamento de texto, validação e extração de dados em diversas linguagens de programação. Padrões regex consistem em caracteres literais e metacaracteres especiais que definem regras de busca. São usados em validação de formulários, análise de logs, operações de busca e substituição, e tarefas de limpeza de dados.",
- heading2: "Como usar esta ferramenta",
- p2: "Digite seu padrão regex no campo de entrada. A ferramenta gerará automaticamente um diagrama railroad visualizando a estrutura do padrão. Adicione um texto de teste para ver o destaque de correspondências e explicações em tempo real. Use o cheatsheet para consulta rápida de padrões e sintaxe comuns. Gere trechos de código para sua linguagem de programação preferida.",
- heading3: "Casos de uso comuns",
- p3: "Validação de e-mail para garantir que a entrada do usuário corresponda ao formato correto antes do processamento, análise de logs para extrair timestamps e endereços IP de logs de servidor, limpeza de dados para remover caracteres indesejados ou formatar números de telefone de forma consistente, e busca e substituição para transformações de texto em massa com correspondência de padrões.",
- heading4: "Dicas avançadas",
- p4: "Comece simples e construa padrões complexos incrementalmente. Use grupos não capturantes (?:) quando não precisar referenciar a correspondência. Teste casos extremos, como strings vazias e caracteres especiais. Considere a legibilidade da regex — padrões complexos podem ser documentados com comentários.",
- },
cheatsheet: {
title: "Referência rápida de regex",
h0: "Classes de caracteres",
@@ -1323,16 +1201,6 @@ export default {
text1: "Copiar",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "O que é um Cron Job?",
- p1: "Um cron job é um agendador de tarefas baseado em tempo em sistemas operacionais do tipo Unix. É usado para executar comandos ou scripts automaticamente em tempos ou intervalos programados. O nome deriva de Chronos, o deus grego do tempo. Cron jobs são essenciais para automação de sistemas, como agendar backups, enviar relatórios por e-mail ou limpar arquivos temporários.",
- heading2: "Como usar esta ferramenta",
- p2: "Selecione a aba apropriada (Minuto, Hora, Dia, Mês, Semana) para configurar cada parte da expressão. Escolha 'Cada' para o wildcard (*) ou insira valores específicos. A expressão cron é atualizada em tempo real na parte superior. Use a visualização 'Próximas execuções' para verificar se seu agendamento funcionará como esperado. Copie a expressão finalizada para a área de transferência com um clique.",
- heading3: "Casos de uso comuns",
- p3: "Backups de banco de dados agendados diariamente à meia-noite. Gerar relatórios toda segunda-feira de manhã. Limpar arquivos de log a cada hora. Enviar notificações de verificação de saúde a cada 5 minutos. Atualizar caches diariamente em horários específicos.",
- heading4: "Dicas avançadas",
- p4: "Sempre teste sua expressão cron com uma ferramenta como esta antes de implantá-la em produção. Lembre-se de que os cron jobs são executados no fuso horário local do servidor, o que pode causar problemas em sistemas distribuídos. Sempre documente seus cron jobs com comentários no crontab para deixar claro seu propósito para referência futura.",
- },
cheatsheet: {
title: "Referência rápida de chaves SSH",
h0: "Tipos de chave",
@@ -1372,16 +1240,6 @@ export default {
tpl2: "Nenhum nome alternativo do titular presente.",
tpl3: "Nenhuma extensão analisada.",
},
- edu: {
- heading1: "O que são certificados X.509?",
- heading2: "Como usar esta ferramenta",
- heading3: "Casos de uso comuns",
- heading4: "Dicas avançadas",
- p1: "
X.509 é um formato padrão para certificados de chave pública, que são documentos digitais que vinculam com segurança uma chave pública a uma identidade (como um site, organização ou indivíduo). Esses certificados são a base da Infraestrutura de Chave Pública (PKI) usada para proteger a internet via HTTPS, além de assinar e-mails e softwares.
Um certificado X.509 contém a chave pública, a identidade do titular do certificado e a assinatura digital da Autoridade Certificadora (CA) que emitiu o certificado, comprovando sua autenticidade.
",
- p2: "
Cole seu certificado: copie seu certificado codificado em PEM (incluindo os cabeçalhos BEGIN e END) e cole-o no campo de entrada.
Analise: clique em \"Parse Certificate\" para extrair e analisar os dados.
Revise o resumo: confira os cartões superiores para o Common Name (CN), o Issuer e as datas de validade.
Inspecione os detalhes: expanda as seções abaixo para ver o Subject, o Issuer, os SANs e as extensões técnicas completos.
Verifique o status: observe o selo de status para ver se o certificado está atualmente válido ou expirado.
",
- p3: "
Solução de problemas de SSL/TLS: diagnosticar por que um site está exibindo um aviso de \"Não seguro\" verificando expiração ou incompatibilidades de hostname.
Auditoria de segurança: verificar se um certificado foi emitido por uma CA confiável e usa algoritmos de assinatura fortes (como SHA-256).
Desenvolvimento: inspecionar certificados autoassinados ou CSRs (Certificate Signing Requests) durante o desenvolvimento local.
Gestão de infraestrutura: verificar os Subject Alternative Names (SANs) para garantir que todos os subdomínios necessários estejam cobertos por um único certificado.
",
- p4: "
Verifique os SANs: navegadores modernos dependem da extensão Subject Alternative Name (SAN), em vez do Common Name (CN), para a verificação do hostname. Sempre garanta que seu domínio esteja listado nos SANs.
Verifique a cadeia: se um certificado é válido, mas ainda assim não confiável, pode faltar certificados intermediários. Verifique o \"Issuer\" para identificar qual CA intermediária você precisa incluir no seu servidor.
Fingerprints para pinning: use o Fingerprint SHA-256 fornecido por esta ferramenta se precisar implementar certificate pinning em aplicativos móveis ou APIs de alta segurança.
",
- },
cheatsheet: {
title: "Referência de certificados X.509",
h0: "Campos do certificado",
@@ -1424,16 +1282,6 @@ export default {
text1: "Copiar JSON",
text2: "Copiar XML",
},
- edu: {
- heading1: "O que é SAML?",
- p1: "Security Assertion Markup Language (SAML) é um padrão aberto baseado em XML para troca de dados de autenticação e autorização entre partes, em especial entre um Identity Provider (IdP) e um Service Provider (SP). O SAML é a espinha dorsal de muitas soluções corporativas de Single Sign-On (SSO), permitindo que os usuários acessem múltiplas aplicações com um único conjunto de credenciais. A versão mais comum é o SAML 2.0, que usa tokens de segurança contendo assertions para transmitir informações sobre um principal entre o IdP e o SP.",
- heading2: "Como usar esta ferramenta",
- p2: "Cole o SAMLResponse codificado em Base64 ou o XML bruto no campo de entrada. Ative Attempt to inflate se estiver decodificando um payload de binding Redirect. Clique em Decode response para analisar a mensagem. Confira o Resumo rápido para ver o Issuer, o Subject e o status de validade. Veja os atributos do usuário decodificados na tabela Attributes. Use as abas para ver o Pretty XML, os detalhes da assertion ou uma representação em JSON das claims.",
- heading3: "Casos de uso comuns",
- p3: "Solução de problemas de SSO diagnosticando por que um usuário não consegue fazer login, verificando assertions expiradas ou incompatibilidades de audience. Testes de integração para verificar se seu Identity Provider está enviando os atributos corretos. Auditoria de segurança para inspecionar o XML bruto e garantir que as assertions estejam corretamente assinadas. Desenvolvimento para visualizar rapidamente o conteúdo de uma mensagem SAML durante a integração do Service Provider.",
- heading4: "Dicas avançadas",
- p4: "Mensagens SAML enviadas via HTTP-Redirect geralmente são comprimidas (deflate) antes de serem codificadas em Base64 — se a decodificação falhar, tente ativar a opção Attempt to inflate. Garanta que o AudienceRestriction corresponda ao Entity ID do seu SP. Se uma resposta for marcada como inválida, verifique os horários NotBefore e NotOnOrAfter em busca de diferença de relógio entre o IdP e o SP.",
- },
cheatsheet: {
title: "Referência rápida de SAML",
h0: "Fluxo SAML",
@@ -1476,16 +1324,6 @@ export default {
alert1: "Digite uma string User-Agent",
tpl2: "Saída bruta da análise",
},
- edu: {
- heading1: "O que é um User-Agent?",
- p1: "Um User-Agent é uma string enviada pelo seu navegador para todo site que você visita. Ela identifica a versão do navegador, o sistema operacional e o tipo de dispositivo, permitindo que os servidores otimizem o conteúdo para seu ambiente específico.",
- heading2: "Como usar esta ferramenta",
- p2: "Cole uma string User-Agent na caixa de entrada ou clique em Use This para analisar a string do seu navegador atual. A ferramenta detalha o engine do navegador, a versão do SO e as características do dispositivo.",
- heading3: "Casos de uso comuns",
- p3: "Depuração de problemas de compatibilidade de sites, análise de logs de servidor web para identificar tráfego de bots, verificação de spoofing de navegador, e entendimento da distribuição de dispositivos no seu público.",
- heading4: "Dicas avançadas",
- p4: "Muitos navegadores modernos congelam ou simplificam suas strings User-Agent para evitar fingerprinting. Sempre procure pelos tokens Version ou Chrome para obter a informação de versão mais precisa.",
- },
},
"qr-code": {
name: "Gerador de Código QR",
@@ -1524,16 +1362,6 @@ export default {
alert3: "Copiado!",
tpl4: "Envie uma imagem para decodificar",
},
- edu: {
- heading1: "O que são códigos QR?",
- p1: "Códigos QR (Quick Response) são códigos de barras bidimensionais capazes de armazenar diversos tipos de dados, mais comumente URLs. Eles podem ser escaneados por smartphones e leitores especializados para acessar rapidamente informações ou disparar ações.",
- heading2: "Como usar esta ferramenta",
- p2: "Digite o texto ou URL que deseja codificar. Ajuste o tamanho e o nível de correção de erros conforme necessário. O código QR é atualizado em tempo real e pode ser baixado como imagem para uso impresso ou digital.",
- heading3: "Casos de uso comuns",
- p3: "Compartilhamento de links de sites, fornecimento de credenciais de Wi-Fi, cartões de visita digitais (vCards), emissão de ingressos para eventos, e fluxos de pagamento móvel ou autenticação.",
- heading4: "Dicas avançadas",
- p4: "Níveis mais altos de correção de erros (H ou Q) permitem que o código QR continue legível mesmo se parcialmente danificado ou obstruído, o que é ideal para sinalização física ou branding.",
- },
},
"timestamp-converter": {
name: "Conversor de Timestamp",
@@ -1564,16 +1392,6 @@ export default {
text0: "Timestamp inválido",
tpl1: "Unix (milissegundos)",
},
- edu: {
- heading1: "O que é Unix Time?",
- p1: "Unix time (também conhecido como Epoch time, POSIX time ou Unix timestamp) é um sistema para descrever um ponto no tempo. É o número de segundos decorridos desde o Unix Epoch, menos segundos intercalares; o Unix Epoch é 00:00:00 UTC em 1 de janeiro de 1970. É amplamente usado em sistemas operacionais e formatos de arquivo porque é um único inteiro, facilitando o armazenamento e manipulação pelos computadores. Esse padrão permite que diferentes sistemas comuniquem o tempo com precisão, independentemente das configurações de fuso horário local.",
- heading2: "Como usar esta ferramenta",
- p2: "Para converter Unix em data legível: insira o timestamp no campo Unix Timestamp e selecione se está em segundos ou milissegundos. Para converter data legível em Unix: selecione a data e hora usando os seletores, depois escolha o fuso horário desejado. Use o botão Now para capturar rapidamente o timestamp atual. Visualize os resultados em tempo real, incluindo ISO 8601, Hora local, UTC e tempo relativo. Clique em Copy ao lado de qualquer resultado para salvá-lo na área de transferência.",
- heading3: "Casos de uso comuns",
- p3: "Análise de logs para converter timestamps enigmáticos em logs de servidor ou entradas de banco de dados em datas legíveis para depuração. Desenvolvimento de API para verificar se seu backend está enviando os valores epoch corretos. Migração de dados para garantir que dados baseados em tempo permaneçam consistentes ao mover entre sistemas. Agendamento para calcular timestamps futuros ou passados para cron jobs, datas de expiração ou gatilhos de eventos.",
- heading4: "Dicas avançadas",
- p4: "Ao trabalhar com JavaScript, lembre-se de que Date.now() retorna milissegundos, enquanto os Unix timestamps padrão estão em segundos — divida por 1000 para converter. Sempre use o formato ISO 8601 para troca de dados entre sistemas para garantir máxima compatibilidade. Esteja ciente do problema do Ano 2038, onde inteiros de 32 bits com sinal transbordarão; sistemas modernos usam inteiros de 64 bits, o que resolve isso para o futuro previsível.",
- },
},
"color-converter": {
name: "Conversor de Cores",
@@ -1589,16 +1407,6 @@ export default {
badge7: "Somente no cliente",
badge8: "Privacidade em primeiro lugar",
},
- edu: {
- heading1: "Modelos de cor explicados (HEX/RGB/HSL)",
- heading2: "Como usar esta ferramenta",
- heading3: "Casos de uso comuns",
- heading4: "Dicas avançadas",
- p1: "
Modelos de cor são sistemas matemáticos para representar cores. HEX (Hexadecimal) é um código de 6 dígitos usado em HTML e CSS, representando componentes Vermelho, Verde e Azul. RGB (Vermelho, Verde, Azul) usa valores decimais de 0 a 255 para cada canal, frequentemente usado em imagens digitais.
HSL (Matiz, Saturação, Luminosidade) é mais intuitivo para humanos, pois descreve a cor em termos de seu pigmento base (Matiz), intensidade (Saturação) e brilho (Luminosidade). Entender esses modelos ajuda a escolher o formato certo para suas necessidades de design e desenvolvimento, garantindo consistência em diferentes plataformas e dispositivos.
",
- p2: "
Use o seletor visual de cores para selecionar uma cor arrastando o cursor no quadrado de saturação/brilho e no controle deslizante de matiz.
Como alternativa, insira um valor específico no campo «Entrada Manual» (suporta formatos #hex, rgb ou hsl).
Observe a caixa de «Visualização» para ver a cor selecionada em tempo real.
Veja os valores convertidos nos cartões HEX, RGB, HSL e HSV abaixo.
Clique no ícone «Copiar» em qualquer cartão para salvar esse formato específico na área de transferência.
",
- p3: "
Web Design: Converter cores de ferramentas de design (frequentemente RGB/HSL) para códigos HEX para uso em folhas de estilo CSS.
Consistência de marca: Garantir que suas cores de marca sejam representadas com precisão em diferentes formatos digitais e mídias.
Desenvolvimento de UI: Gerar rapidamente variações mais claras ou escuras de uma cor base ajustando o valor de Luminosidade no HSL.
Teste de acessibilidade: Usar a visualização para verificar se suas cores fornecem contraste suficiente para texto legível e elementos de UI.
",
- p4: "
Use HSL ao projetar componentes de UI como botões, pois facilita a criação de estados de hover simplesmente ajustando o valor de luminosidade.
Ao trabalhar com transparência em CSS, prefira rgba() ou hsla() para melhor legibilidade e controle sobre o canal alfa.
Sempre verifique as proporções de contraste de cores para garantir que seus designs sejam acessíveis a usuários com deficiências visuais.
",
- },
},
"unit-converter": {
name: "Conversor de Unidades",
@@ -1616,16 +1424,6 @@ export default {
text0: "Selecione as unidades para ver a fórmula de conversão",
text1: "Digite um número válido",
},
- edu: {
- heading1: "Visão geral dos sistemas de medição",
- p1: "Sistemas de medição são coleções de unidades de medida e regras que as relacionam entre si. Os dois sistemas mais comuns são o Sistema Métrico (Sistema Internacional de Unidades ou SI) e o Sistema Imperial. O sistema métrico é baseado em potências de dez, tornando-o altamente lógico e fácil de escalar. O sistema imperial, usado principalmente nos Estados Unidos, usa unidades como polegadas, pés e libras com origens históricas. Compreender as diferenças entre esses sistemas é essencial para ciência, engenharia, comércio internacional e tarefas do dia a dia como cozinhar ou viajar.",
- heading2: "Como usar esta ferramenta",
- p2: "Selecione a categoria de medição (por exemplo, Comprimento, Peso, Temperatura) na grade no topo. Escolha a unidade a partir da qual deseja converter no menu suspenso De. Insira o valor que deseja converter no campo de entrada. Selecione a unidade de destino no menu suspenso Para. O valor convertido aparecerá instantaneamente junto com a fórmula matemática usada para a conversão.",
- heading3: "Casos de uso comuns",
- p3: "Viagens para converter distâncias de quilômetros para milhas ou temperaturas de Celsius para Fahrenheit. Culinária para traduzir receitas entre métricas (gramas/mililitros) e imperiais (onças/xícaras). Engenharia e ciência para conversões precisas entre diferentes unidades de pressão, energia ou velocidade. Armazenamento digital para entender a diferença entre Megabytes, Gigabytes e Terabytes.",
- heading4: "Dicas avançadas",
- p4: "Use o botão Trocar para inverter rapidamente a direção da conversão entre suas unidades selecionadas. Verifique sempre o tipo de unidade específico, especialmente para volume e peso, pois os nomes podem ser semelhantes em diferentes sistemas como galões dos EUA vs. do Reino Unido. Ao realizar múltiplas conversões em sequência, mantenha o maior número possível de casas decimais até o resultado final para evitar erros de arredondamento cumulativos.",
- },
},
"yaml-toml-converter": {
name: "Conversor YAML/TOML",
@@ -1659,16 +1457,6 @@ export default {
text6: "⚠️ Falha na conversão de TOML:",
tpl7: "Aguardando conversão.",
},
- edu: {
- heading1: "YAML vs. TOML vs. JSON comparados",
- p1: "JSON é o formato mais usado para troca de dados devido à sua simplicidade e suporte nativo em JavaScript. YAML (YAML Ain't Markup Language) é um padrão de serialização de dados amigável para humanos que usa indentação para representar a estrutura, tornando-o popular para arquivos de configuração complexos. TOML (Tom's Obvious, Minimal Language) foi projetado para ser fácil de ler e escrever devido à sua semântica óbvia e é frequentemente usado para configuração de projetos. Enquanto o JSON é rígido e compacto, YAML e TOML priorizam a legibilidade humana e a facilidade de edição manual.",
- heading2: "Como usar esta ferramenta",
- p2: "Cole seus dados de configuração (JSON, YAML ou TOML) na área de texto de origem à esquerda. A ferramenta detecta automaticamente o formato de origem, ou você pode selecioná-lo manualmente no menu suspenso. Clique em Validate only para verificar erros de sintaxe sem realizar uma conversão. Clique em um dos botões de conversão (to JSON, to YAML, to TOML) para traduzir seus dados para esse formato. Veja os resultados nos painéis de saída à direita e clique em Copy para salvá-los na sua área de transferência.",
- heading3: "Casos de uso comuns",
- p3: "Infraestrutura como código para converter entre JSON e YAML ao trabalhar com manifestos Kubernetes, arquivos Docker Compose ou templates AWS CloudFormation. Configuração de projetos para migrar definições entre package.json (JSON) e pyproject.toml ou Cargo.toml (TOML). Prototipagem de API para visualizar rapidamente como uma estrutura de dados complexa aparece em diferentes formatos. Migração de sistemas legados para traduzir arquivos de configuração antigos para formatos modernos garantindo a integridade dos dados.",
- heading4: "Dicas avançadas",
- p4: "Use YAML para pipelines de CI/CD onde a legibilidade de estruturas aninhadas complexas é essencial para a manutenção. Prefira TOML para arquivos de configuração no nível da aplicação, oferecendo uma interface limpa para usuários finais que talvez precisem editá-los manualmente. Ao converter de YAML para JSON, esteja atento a problemas de coerção de tipos do YAML (onde NO pode ser interpretado como false) e garanta que seus tipos de dados sejam preservados corretamente.",
- },
cheatsheet: {
title: "Comparação de formatos",
h0: "Diferenças de sintaxe",
@@ -1719,16 +1507,6 @@ export default {
text1: "Copiar",
text2: "Copiado!",
},
- edu: {
- heading1: "O que é htpasswd?",
- p1: "
O arquivo htpasswd é um banco de dados de arquivo simples usado para armazenar nomes de usuário e senhas com hash para autenticação básica em servidores web Apache e Nginx. É uma forma simples, porém eficaz, de proteger diretórios específicos ou painéis administrativos de um site sem precisar de um sistema completo de autenticação baseado em banco de dados.
Cada linha de um arquivo htpasswd representa um único usuário e segue o formato username:hashed_password.
",
- heading2: "Como usar esta ferramenta",
- p2: "
Digite o nome de usuário: informe o nome de usuário que deseja usar para autenticação.
Forneça a senha: digite uma senha ou clique em Generate strong para criar uma senha segura.
Selecione o algoritmo: escolha Bcrypt (-B) para segurança moderna ou Apache MD5 (-m) para compatibilidade legada.
Gere: clique em Generate entry para criar a string com hash.
Copie ou baixe: copie a linha resultante para sua área de transferência ou baixe-a como arquivo para enviar ao seu servidor.
",
- heading3: "Casos de uso comuns",
- p3: "
Painéis administrativos: proteger áreas sensíveis como /admin ou /wp-admin com uma camada extra de segurança em nível de servidor.
Sites de staging: restringir o acesso a ambientes de desenvolvimento ou staging para que não sejam indexados por mecanismos de busca ou vistos pelo público.
Repositórios privados: proteger repositórios Git ou SVN locais servidos por HTTP.
API Gateways: implementar autenticação simples para microsserviços internos ou APIs legadas.
",
- heading4: "Dicas avançadas",
- p4: "
Sempre use Bcrypt: o Bcrypt é intencionalmente lento e usa um fator de custo para resistir a ataques de força bruta. É significativamente mais seguro do que as opções legadas MD5 ou SHA1.
Proteja o arquivo: nomeie seu arquivo .htpasswd (com um ponto no início) e armazene-o fora do diretório raiz do seu site para evitar que seja baixado.
HTTPS é obrigatório: a autenticação básica envia credenciais em um formato facilmente reversível. Nunca a use por HTTP não criptografado; sempre garanta que seu site seja servido por HTTPS.
",
- },
},
"mock-data-generator": {
name: "Gerador de Dados de Teste",
@@ -1762,16 +1540,6 @@ export default {
text1: "Copiar",
text2: "Nenhuma linha para pré-visualizar.",
},
- edu: {
- heading1: "O que são dados mock?",
- p1: "
Dados mock são informações sintéticas que imitam dados reais sem conter informações sensíveis ou pessoalmente identificáveis (PII). São essenciais para desenvolvedores e testadores que precisam de conjuntos de dados realistas para construir e validar aplicações sem arriscar violações de dados ou violar regulamentos de privacidade como GDPR ou CCPA. Ao usar dados mock, você pode simular vários cenários, garantindo que seu software trate todos os tipos de entrada adequadamente.
",
- heading2: "Estratégias de teste",
- p2: "
Testes eficazes requerem conjuntos de dados diversificados. Use dados mock para popular seus bancos de dados de desenvolvimento, realizar testes de carga com milhares de registros ou verificar layouts de UI com comprimentos de string variados. É particularmente útil para testes de integração onde você precisa de respostas previsíveis de APIs externas. Ao gerar dados localmente, você pode criar ambientes de teste consistentes que são fáceis de redefinir e reproduzir.
",
- heading3: "Privacidade de dados em mocks",
- p3: "
Privacidade é uma prioridade máxima no desenvolvimento de software moderno. Usar dados reais de produção em ambientes de desenvolvimento ou staging é um grande risco de segurança. Geradores de dados mock resolvem isso produzindo dados falsos mas estruturalmente corretos. Nossa ferramenta roda inteiramente no seu navegador, o que significa que sua configuração e os dados gerados permanecem no seu navegador e não são enviados aos nossos servidores.
",
- heading4: "Dicas avançadas",
- p4: "
Consistência: Ao gerar múltiplos conjuntos de dados relacionados, use seeds fixas ou padrões para manter a integridade referencial entre tabelas.
Casos extremos: Inclua strings vazias, nomes muito longos e caracteres especiais para testar a robustez da sua aplicação.
Troca de formato: Use a exportação SQL para semear bancos de dados rapidamente e CSV para análise em planilhas ou importações em massa.
Automação: Os padrões que esta ferramenta usa podem ser integrados em seus pipelines CI/CD automatizados para testes contínuos.
",
- },
cheatsheet: {
title: "Tipos de campos de dados mock",
h0: "Tipos disponíveis",
@@ -1870,16 +1638,6 @@ export default {
js: {
tpl0: "aLtErNaNdO:",
},
- edu: {
- heading1: "Convenções de nomenclatura explicadas (camelCase/snake_case/etc)",
- heading2: "Como usar esta ferramenta",
- heading3: "Casos de uso comuns",
- heading4: "Dicas avançadas",
- p1: "
Convenções de nomenclatura são conjuntos de regras para escolher a sequência de caracteres usada em identificadores que denotam variáveis, tipos, funções e outras entidades no código-fonte e na documentação. camelCase (ex.: myVariable) começa com uma letra minúscula e capitaliza a primeira letra de cada palavra subsequente. snake_case (ex.: my_variable) usa underscores para separar palavras.
PascalCase (ex.: MyVariable) capitaliza a primeira letra de cada palavra, enquanto kebab-case (ex.: my-variable) usa hífens para separar palavras. Essas convenções não são apenas estéticas; são fundamentais para a legibilidade e manutenção do código, além de seguir os padrões idiomáticos de diferentes linguagens de programação e frameworks.
",
- p2: "
Digite ou cole seu texto na área \"Input Text\" no topo da página.
A ferramenta converterá automaticamente sua entrada para mais de uma dezena de estilos de caixa diferentes em tempo real.
Percorra a grade \"Conversion Results\" para encontrar o estilo de caixa específico que você precisa.
Clique no ícone \"Copy\" ao lado de qualquer resultado para salvá-lo na sua área de transferência.
Use o botão \"Clear\" para remover toda a entrada e começar uma nova conversão.
",
- p3: "
Refatoração de código: converta rapidamente nomes de variáveis ao migrar código entre linguagens com padrões diferentes (ex.: o camelCase do Java para o snake_case do Python).
Desenvolvimento web: transforme texto em kebab-case para nomes de classes CSS ou slugs de URL, garantindo identificadores válidos e favoráveis a SEO.
Design de banco de dados: converta identificadores camelCase da aplicação para snake_case em nomes de tabelas e colunas do banco de dados.
Criação de conteúdo: use Title Case ou Sentence case para formatar rapidamente títulos e corpo de texto de artigos ou documentação.
",
- p4: "
Seja consistente dentro do seu projeto; mesmo que prefira um estilo, sempre siga a convenção existente da base de código em que está trabalhando.
Use nomes descritivos que transmitam significado, em vez de apenas seguir a convenção de caixa (ex.: isUserLoggedIn é melhor do que status).
Ao trabalhar com APIs, esteja preparado para converter entre os estilos, já que sistemas de backend costumam usar snake_case, enquanto frontends preferem camelCase.
",
- },
},
"code-minifier": {
name: "Minificador de Código",
@@ -1913,16 +1671,6 @@ export default {
text2: "📋 Copiar",
tpl3: "Todo o processamento acontece no seu navegador. Seu código é processado localmente e não é enviado aos nossos servidores.",
},
- edu: {
- heading1: "O que é minificação?",
- heading2: "Como usar esta ferramenta",
- heading3: "Casos de uso comuns",
- heading4: "Dicas avançadas",
- p1: "
Minificação é o processo de remover todos os caracteres desnecessários do código-fonte sem alterar sua funcionalidade. Isso inclui remover espaços em branco, quebras de linha, comentários e, às vezes, encurtar nomes de variáveis. O objetivo é reduzir o tamanho do arquivo do código, o que por sua vez reduz a quantidade de dados que precisam ser transferidos pela rede.
Isso resulta em tempos de carregamento de página mais rápidos e melhor desempenho para aplicações web. Embora a minificação seja essencial para ambientes de produção, ela torna o código quase impossível de ler e depurar para humanos. Por isso, geralmente é realizada como uma etapa final do processo de build antes da implantação em um servidor ativo.
",
- p2: "
Selecione a linguagem de programação (JavaScript, CSS, HTML ou JSON) nas abas no topo.
Cole seu código-fonte na área de texto \"Input Code\" à esquerda.
Clique no botão \"Minify Code\" para reduzir o tamanho do arquivo para uso em produção.
Alternativamente, clique em \"Beautify Code\" para adicionar indentação e formatação para melhor legibilidade.
Veja os resultados na área \"Output Code\" e clique em \"Copy\" ou \"Download\" para salvar seu código otimizado.
",
- p3: "
Implantação em produção: minifique seus arquivos JS e CSS antes de enviá-los ao seu servidor web para melhorar a velocidade do site e o SEO.
Templates de e-mail: minifique o código HTML de e-mail para garantir que fique dentro dos limites de tamanho de diversos clientes de e-mail e carregue rapidamente para os destinatários.
Respostas de API: minifique dados JSON antes de enviá-los do seu servidor para reduzir o uso de largura de banda e os custos de saída de dados.
Auditoria de código: use o beautifier para formatar código bagunçado ou minificado encontrado online e entender como ele funciona.
",
- p4: "
Sempre mantenha seu código-fonte original, não minificado, para o desenvolvimento e use a versão minificada apenas para a implantação em produção.
Use Source Maps para conectar o código de produção minificado ao código de desenvolvimento legível, permitindo depuração eficiente no navegador.
Combine a minificação com compressão Gzip ou Brotli no seu servidor para obter a máxima redução possível no tamanho do arquivo e no tempo de transferência.
",
- },
},
"image-converter": {
name: "Conversor de Imagens",
@@ -1969,16 +1717,6 @@ export default {
alert2: "Erro ao ler o arquivo.",
tpl3: "Processamento no cliente usando a Canvas API — sem envios, resultados instantâneos",
},
- edu: {
- heading1: "Formatos de imagem comparados (PNG/JPEG/WebP)",
- p1: "
Escolher o formato de imagem certo é fundamental para o desempenho web e a qualidade visual. JPEG é ideal para fotografias e imagens complexas com muitas cores, pois usa compressão com perdas para obter arquivos pequenos. PNG é ideal para imagens que exigem transparência ou têm bordas nítidas e cores sólidas (como logotipos e ícones), pois usa compressão sem perdas.
WebP é um formato moderno que oferece compressão com e sem perdas superior, frequentemente resultando em arquivos significativamente menores do que JPEG ou PNG, mantendo alta qualidade.
",
- heading2: "Como usar esta ferramenta",
- p2: "
Envie sua imagem soltando-a na zona Upload Image ou clicando para procurar seus arquivos.
Selecione o formato de saída desejado (PNG, JPG ou WebP) nas opções Convert Format.
Se você selecionou um formato com perdas como JPG ou WebP, use o controle deslizante de qualidade para equilibrar tamanho do arquivo e fidelidade visual.
Opcionalmente, use as configurações Resize Image para redimensionar sua imagem por porcentagem ou dimensões específicas.
Clique em Convert & Resize Image e depois em Download para salvar seu ativo otimizado.
",
- heading3: "Casos de uso comuns",
- p3: "
Otimização web: converta imagens PNG ou JPEG grandes para WebP para melhorar a velocidade de carregamento do seu site e os Core Web Vitals.
Redes sociais: redimensione e comprima fotos para atender aos requisitos específicos de envio de plataformas como Instagram, Twitter ou LinkedIn.
Marketing por e-mail: reduza o tamanho de arquivo das imagens nas suas campanhas de e-mail para garantir que carreguem rapidamente para todos os destinatários.
Desenvolvimento de apps: gere múltiplos tamanhos do mesmo ícone ou ativo para diferentes densidades de tela usando os recursos de redimensionamento.
",
- heading4: "Dicas avançadas",
- p4: "
Use WebP sempre que possível em projetos web, já que é suportado por todos os navegadores modernos e oferece a melhor relação compressão-qualidade.
Ao converter para JPEG, uma configuração de qualidade de 70-80% geralmente oferece o melhor equilíbrio entre tamanho de arquivo e qualidade visual para a maioria dos usos web.
Sempre mantenha suas imagens originais em alta resolução e converta ou redimensione apenas cópias para casos de uso específicos, evitando perda de qualidade ao longo do tempo por compressões repetidas.
",
- },
},
"css-gradient": {
name: "Gerador de Gradientes CSS",
@@ -2018,16 +1756,6 @@ export default {
alert2: "Falha ao copiar o CSS para a área de transferência",
tpl3: "Telas de carregamento e sobreposições",
},
- edu: {
- heading1: "O que são gradientes CSS?",
- heading2: "Gradientes lineares vs. radiais vs. cônicos",
- heading3: "Suporte de navegadores e desempenho",
- heading4: "Dicas avançadas para gradientes melhores",
- p1: "
Gradientes CSS são um recurso poderoso que permite exibir transições suaves entre duas ou mais cores especificadas. Diferente das imagens de fundo tradicionais, os gradientes são gerados pelo navegador, o que significa que são infinitamente escaláveis, consomem menos largura de banda e podem ser facilmente manipulados com código. São comumente usados em fundos, botões e elementos decorativos para adicionar profundidade e interesse visual aos designs web.
",
- p2: "
Existem três tipos principais de gradientes CSS:
Gradientes lineares: as cores fazem a transição ao longo de uma linha reta. Você pode controlar a direção usando ângulos (ex.: 45deg) ou palavras-chave (ex.: to right).
Gradientes radiais: as cores irradiam para fora a partir de um ponto central (a \"origem\"). Você pode especificar a forma (circle ou ellipse) e a posição do centro.
Gradientes cônicos: as cores fazem a transição ao redor de um ponto central, semelhante a um gráfico de pizza ou uma roda de cores. Embora menos comuns, são ótimos para criar padrões e elementos de UI únicos.
",
- p3: "
Os gradientes CSS modernos têm amplo suporte em todos os principais navegadores, incluindo Chrome, Firefox, Safari e Edge. Como são renderizados matematicamente pelo engine do navegador, são extremamente eficientes em comparação com imagens de alta resolução. No entanto, para gradientes muito complexos com dezenas de pontos de cor, é sempre uma boa prática testar o desempenho em dispositivos mais fracos. Para navegadores mais antigos (como o IE9 e anteriores), é recomendável fornecer uma cor sólida como fallback.
",
- p4: "
Evite \"zonas mortas cinzas\": ao fazer a transição entre duas cores distantes, o ponto médio às vezes pode parecer turvo ou acinzentado. Adicionar um ponto de cor intermediário vibrante pode manter o gradiente com aparência fresca.
Use transições sutis: frequentemente, os melhores gradientes são os que você quase não percebe. Usar cores próximas entre si na roda de cores cria uma aparência sofisticada e profissional.
Camadas: você pode empilhar múltiplos gradientes um sobre o outro usando a propriedade background-image, permitindo efeitos incrivelmente complexos e artísticos.
Acessibilidade: garanta que qualquer texto colocado sobre um gradiente tenha contraste suficiente. Use ferramentas para verificar a conformidade com o WCAG em todas as combinações de cores.
",
- },
},
"curl-studio": {
name: "Estúdio cURL",
@@ -2096,16 +1824,6 @@ export default {
text2: "Copiado!",
tpl3: "Os logs aparecerão aqui após o mascaramento...",
},
- edu: {
- heading1: "O que é PII?",
- p1: "
Informação de Identificação Pessoal (PII) é qualquer dado que possa ser usado para identificar um indivíduo específico. Isso inclui identificadores diretos, como nomes, endereços de e-mail e números de telefone, bem como identificadores indiretos, como endereços IP, localizações físicas e números de cartão de crédito. No contexto de logs de servidor, a PII costuma aparecer em parâmetros de requisição, headers ou mensagens de erro.
Proteger a PII é uma parte crítica da segurança de dados moderna e é exigida por diversas estruturas legais ao redor do mundo.
",
- heading2: "Requisitos de conformidade (GDPR/CCPA)",
- p2: "
Regulamentações como o Regulamento Geral de Proteção de Dados (GDPR) na Europa e o California Consumer Privacy Act (CCPA) nos Estados Unidos impõem regras rígidas sobre como os dados pessoais são tratados. Essas leis exigem que as organizações implementem privacidade por design e minimizem a coleta e o armazenamento de dados pessoais.
Compartilhar logs brutos contendo PII com equipes de suporte terceirizadas ou desenvolvedores pode gerar violações de conformidade. Mascarar ou redigir esses dados antes que saiam do seu ambiente seguro é uma etapa fundamental para manter a conformidade regulatória.
",
- heading3: "Estratégias de mascaramento",
- p3: "
Existem várias formas de lidar com dados sensíveis em logs:
Redação: substituir o valor sensível por um placeholder genérico como [EMAIL_REDACTED]. Essa é a abordagem mais comum para compartilhar logs.
Anonimização: transformar os dados de forma irreversível para que o indivíduo não possa mais ser identificado.
Pseudonimização: substituir identificadores por um alias consistente (como um hash) para que você ainda possa correlacionar eventos sem conhecer a identidade do usuário.
Nossa ferramenta foca na redação, usando correspondência de padrões para encontrar e substituir formatos comuns de PII instantaneamente.
",
- heading4: "Dicas avançadas",
- p4: "
Use o campo Custom Keywords para redigir identificadores internos, como chaves de API, tokens de sessão ou nomes de projetos proprietários que não são cobertos pelos padrões padrão.
Sempre realize o mascaramento localmente (como esta ferramenta faz) para garantir que dados sensíveis nunca toquem um servidor de terceiros durante o processo de limpeza.
Se você está correlacionando logs entre múltiplos sistemas, considere usar um salt consistente com uma ferramenta de hash em vez de uma redação simples para manter a rastreabilidade.
Audite regularmente o código da sua aplicação para evitar que a PII seja registrada em log logo na origem; registrar corretamente na origem é a melhor defesa.
A autenticação de e-mail é um conjunto de técnicas usadas para fornecer informações verificáveis sobre a origem de uma mensagem de e-mail. Ao validar a identidade do remetente, esses protocolos ajudam os servidores de e-mail a distinguir entre mensagens legítimas e mensagens falsificadas ou fraudulentas (como phishing). Os três pilares da autenticação de e-mail moderna são SPF, DKIM e DMARC.
Quando um e-mail é recebido, o servidor receptor realiza essas verificações e registra os resultados nos cabeçalhos do e-mail, que esta ferramenta analisa para você.
",
- p2: "
SPF (Sender Policy Framework): um mecanismo baseado em DNS que lista os endereços IP e domínios autorizados a enviar e-mail em nome do seu domínio.
DKIM (DomainKeys Identified Mail): adiciona uma assinatura digital ao e-mail, permitindo que o destinatário verifique se a mensagem foi realmente enviada pelo proprietário do domínio e não foi adulterada em trânsito.
DMARC (Domain-based Message Authentication, Reporting, and Conformance): une o SPF e o DKIM. Ele informa ao destinatário o que fazer se a autenticação falhar (ex.: \"none\", \"quarantine\" ou \"reject\") e oferece uma forma de os destinatários enviarem relatórios de volta ao remetente.
",
- p3: "
E-mails de phishing costumam usar \"spoofing\" para parecer que vêm de uma fonte confiável. Nosso analisador procura sinais de alerta comuns, como uma incompatibilidade entre o endereço \"From\" (o que o usuário vê) e o \"Return-Path\" (de onde o e-mail realmente veio). Também extraímos e analisamos URLs no corpo do e-mail para identificar links suspeitos, como aqueles que usam Punycode (domínios parecidos) ou endereços IP em vez de nomes de host.
Ao revisar a seção \"Findings\", você pode identificar rapidamente esses sinais e determinar se um e-mail é seguro para interagir.
",
- p4: "
Sempre verifique primeiro o cabeçalho \"Authentication-Results\"; ele fornece o resultado definitivo das verificações de segurança realizadas pelo seu provedor de e-mail.
Use a opção \"Mask PII\" ao compartilhar relatórios com outras pessoas para proteger endereços de e-mail e informações de IP sensíveis.
Preste muita atenção ao cabeçalho \"Reply-To\"; se ele diferir do endereço \"From\", pode ser um sinal de um ataque de Business Email Compromise (BEC).
Revise os \"Routing Hops\" para ver o caminho que o e-mail percorreu; um caminho incomumente longo ou complexo através de servidores desconhecidos pode ser um sinal de abuso de relay.
",
- },
cheatsheet: {
title: "Referência rápida de autenticação de e-mail",
h0: "O que essas verificações significam",
@@ -2491,16 +2199,6 @@ export default {
text9: "Cole o SQL primeiro.",
text10: "✓ Copiado",
},
- edu: {
- heading1: "Por que formatar SQL?",
- p1: "O SQL pode rapidamente se tornar complexo e difícil de ler, especialmente ao lidar com múltiplos joins, subconsultas e condições aninhadas. Formatar SQL envolve adicionar indentação consistente, quebras de linha e capitalização de palavras-chave. Isso torna a lógica da consulta muito mais fácil de acompanhar, o que é essencial para depuração, revisões de código e manutenção de grandes esquemas de banco de dados ao longo do tempo. Uma consulta bem formatada também é menos propensa a erros lógicos durante edições manuais.",
- heading2: "Como usar esta ferramenta",
- p2: "Cole sua consulta SQL bruta no editor Input SQL à esquerda. Selecione o dialeto do banco de dados (Postgres ou MySQL) e a caixa de palavras-chave preferida (UPPER ou lower). Clique no botão Format para embelezar sua consulta com indentação e espaçamento adequados. Use o botão Validate para verificar problemas estruturais comuns, como aspas não fechadas ou parênteses desbalanceados. Clique em Copy para salvar o SQL formatado na sua área de transferência ou em Clear para recomeçar.",
- heading3: "Casos de uso comuns",
- p3: "Revisões de código para formatar SQL bagunçado antes de enviar um pull request. Depuração para limpar consultas geradas por ORMs e entender exatamente o que está sendo executado no seu banco de dados. Documentação para criar exemplos claros e legíveis para guias técnicos, wikis ou arquivos README. Limpeza de sistemas legados para refatorar rapidamente scripts antigos e não formatados em um estilo moderno e legível.",
- heading4: "Dicas avançadas",
- p4: "Use Common Table Expressions (CTEs) com a cláusula WITH para dividir consultas complexas em partes menores e mais gerenciáveis. Sempre use aliases descritivos para tabelas e colunas para deixar clara a intenção da sua consulta. Use o botão Minify se precisar comprimir seu SQL em uma única linha para uso em arquivos de configuração ou ferramentas de linha de comando.",
- },
cheatsheet: {
title: "Dicas de formatação SQL",
h0: "Ganhos rápidos",
@@ -2569,16 +2267,6 @@ export default {
text15: "Nota: os valores são mascarados por segurança. O diff é heurístico e não inclui comentários/ordem.",
text16: "✓ Copiado",
},
- edu: {
- heading1: "Boas práticas para variáveis de ambiente",
- heading2: "Gestão de segredos",
- heading3: "Segurança do .env",
- heading4: "Dicas avançadas",
- p1: "
Variáveis de ambiente são uma parte fundamental da metodologia \"Twelve-Factor App\", que defende uma separação rígida entre configuração e código. Ao usar variáveis de ambiente, você pode executar o mesmo código em diferentes ambientes (desenvolvimento, staging, produção) apenas alterando os valores de configuração.
As boas práticas incluem usar nomes descritivos em maiúsculas (ex.: DATABASE_URL), fornecer valores padrão para configurações não críticas e nunca fixar informações sensíveis diretamente no controle de versão.
",
- p2: "
Segredos são uma categoria especial de variáveis de ambiente que contêm informações sensíveis, como chaves de API, senhas de banco de dados e certificados privados. Gerenciá-los com segurança é fundamental para evitar vazamentos de dados. Você deve usar um serviço dedicado de gestão de segredos (como AWS Secrets Manager, HashiCorp Vault ou Cloudflare Secrets) para ambientes de produção.
Para desenvolvimento local, arquivos .env são comumente usados, mas nunca devem ser enviados ao seu repositório Git. Sempre adicione *.env ao seu arquivo .gitignore.
",
- p3: "
Ao compartilhar arquivos .env com colegas de equipe para depuração, há um alto risco de expor acidentalmente segredos de produção. Nosso gerenciador ajuda a mitigar esse risco fornecendo um recurso \"Mask sensitive values\". Ele usa heurísticas para identificar chaves como SECRET, TOKEN ou PASSWORD e substitui seus valores por uma versão mascarada (ex.: ab...yz (32)).
Isso permite que você compare a estrutura e os valores não sensíveis dos seus arquivos de ambiente sem vazar os segredos reais.
",
- p4: "
Use o botão \"Swap\" para inverter rapidamente a direção da comparação entre o Ambiente A e o Ambiente B.
Aproveite o campo \"Filter keys\" para focar em grupos específicos de variáveis, como todas as chaves que começam com AWS_ ou DB_.
Sempre inclua um arquivo .env.example no seu repositório com valores fictícios para mostrar a outros desenvolvedores quais variáveis são necessárias para a aplicação funcionar.
Lembre-se de que variáveis de ambiente costumam ser strings; se sua aplicação precisar de um booleano ou número, garanta que o valor seja analisado corretamente no seu código.
",
- },
cheatsheet: {
title: "Notas sobre dotenv",
h0: "Estratégia de mascaramento",
@@ -2638,16 +2326,6 @@ export default {
text7: "Nenhuma pré-visualização ainda.",
text8: "✓ Copiado",
},
- edu: {
- heading1: "O que é SVG?",
- p1: "SVG (Scalable Vector Graphics) é um formato de imagem vetorial baseado em XML para gráficos bidimensionais, com suporte a interatividade e animação. Diferente de formatos raster como JPEG ou PNG, os SVGs são definidos por caminhos matemáticos, o que significa que podem ser redimensionados para qualquer tamanho sem perder qualidade. Isso os torna perfeitos para logotipos, ícones e ilustrações na web, onde permanecem nítidos em qualquer dispositivo, de telas de celular a monitores de desktop de alta resolução.",
- heading2: "Como usar esta ferramenta",
- p2: "Cole seu código SVG na área de texto SVG Input à esquerda. Clique em Preview para ver o gráfico e extrair sua paleta de cores. Use os botões Optimize ou Minify para limpar o markup e reduzir o tamanho do arquivo. Opcionalmente, substitua cores específicas informando novos valores no painel Colors e clicando em Apply. Clique em Copy ou Download para salvar seu SVG higienizado e otimizado.",
- heading3: "Casos de uso comuns",
- p3: "Gerenciamento de ícones para limpar SVGs exportados de ferramentas de design como Figma ou Illustrator. Temas para alterar rapidamente as cores de um conjunto de ícones e combinar com a paleta da sua marca. Segurança para higienizar SVGs de fontes não confiáveis e remover possíveis scripts ou referências externas. Desempenho para minificar o markup SVG, reduzindo o tamanho de gráficos inline e melhorando os tempos de carregamento da página.",
- heading4: "Dicas avançadas",
- p4: "Use o botão currentColor para converter todos os fills e strokes explícitos para currentColor, tornando seu SVG facilmente estilizável via CSS. Sempre otimize seus SVGs antes de usá-los em produção para garantir que fiquem o menor possível. Ao criar SVGs em ferramentas de design, use os recursos Outline Stroke e Simplify Path para reduzir a complexidade do código gerado antes da otimização.",
- },
cheatsheet: {
title: "Notas de segurança do SVG",
h0: "Higienização",
@@ -2801,16 +2479,6 @@ export default {
text28: "Clique em Scan para encontrar segredos.",
text29: "✓ Copiado",
},
- edu: {
- heading1: "O que são vazamentos de segredos?",
- p1: "Vazamentos de segredos ocorrem quando informações sensíveis, como chaves de API, senhas ou tokens privados, são acidentalmente enviadas ao controle de versão ou compartilhadas em fóruns públicos. Esses vazamentos podem levar a acesso não autorizado, violações de dados e perdas financeiras. Esta ferramenta ajuda a identificar padrões comuns de segredos localmente no seu navegador antes de você compartilhar ou fazer commit do seu código.",
- heading2: "Como usar esta ferramenta",
- p2: "Cole seu código, configuração ou arquivos de log na área de entrada. Clique no botão Scan para analisar o texto em busca de possíveis segredos. Revise os achados e as recomendações para cada item detectado. Use o botão Copy Redacted para obter uma versão compartilhável do seu texto com os segredos mascarados.",
- heading3: "Casos de uso comuns",
- p3: "Verificações pre-commit para escanear seu código antes de fazer commit e garantir que nenhum segredo seja incluído. Redação de logs para mascarar tokens sensíveis em logs antes de compartilhá-los com o suporte ou colegas de equipe. Auditoria de segurança para auditar rapidamente arquivos de configuração em busca de credenciais fixas no código.",
- heading4: "Dicas avançadas",
- p4: "Sempre rotacione suas credenciais imediatamente se descobrir que vazaram. Use variáveis de ambiente ou gerenciadores de segredos em vez de fixar segredos no seu código-fonte. Ative Include low severity patterns para um escaneamento mais completo, mas esteja preparado para mais falsos positivos.",
- },
cheatsheet: {
title: "O que fazer se você encontrar um segredo",
h0: "Passos imediatos",
@@ -2907,16 +2575,6 @@ export default {
text15: "✓ Estrutura JWKS válida (",
text16: "Cole um JWK.",
},
- edu: {
- heading1: "O que é um JWT?",
- p1: "Um JSON Web Token (JWT) é um meio compacto e seguro para URLs de representar claims transferidas entre duas partes. Um JWT consiste em três partes codificadas em Base64URL separadas por pontos: o Header (algoritmo e tipo), o Payload (claims) e a Signature. A assinatura garante que o token não foi adulterado. JWTs são comumente usados para autenticação e troca de informações em APIs web. As claims padrão incluem sub (subject), iss (issuer), aud (audience), exp (expiration), nbf (not before), iat (issued at) e jti (JWT ID).",
- heading2: "Algoritmos JWT",
- p2: "HS256/384/512 usa HMAC com SHA-2 e um segredo compartilhado — simples, mas ambas as partes precisam ter a mesma chave. RS256/384/512 usa assinaturas assimétricas RSA PKCS#1 v1.5 — ideal para arquiteturas de microsserviços onde os serviços só precisam da chave pública. ES256/384/512 usa ECDSA com curvas NIST para assinaturas menores que RSA com segurança equivalente. PS256/384/512 usa RSA-PSS, uma variante probabilística preferida em vez de RS* em sistemas modernos.",
- heading3: "JWK e JWKS",
- p3: "Um JSON Web Key (JWK) é uma estrutura JSON que representa uma chave criptográfica. Um JWK Set (JWKS) é uma estrutura JSON contendo um array de JWKs na propriedade keys. Os serviços publicam seu JWKS em uma URL bem conhecida (ex.: /.well-known/jwks.json), permitindo que os clientes obtenham chaves públicas para verificação de JWT sem troca de chaves fora de banda. As chaves em um JWKS são identificadas pelo seu kid (Key ID), que os headers do JWT referenciam.",
- heading4: "Boas práticas de segurança",
- p4: "Sempre valide as claims exp, nbf, iss e aud no lado do servidor. Nunca use o algoritmo alg: none em produção — ele remove toda a proteção da assinatura. Prefira algoritmos assimétricos (RS*, ES*, PS*) em vez de HMAC quando múltiplos serviços precisarem verificar tokens. Rotacione as chaves regularmente e use o kid para identificar qual chave foi usada para assinar cada token. Armazene chaves privadas com segurança — nunca as envie para o controle de versão. Use tempos de expiração curtos e refresh tokens em vez de JWTs de longa duração.",
- },
},
"encoding-workbench": {
name: "Bancada de Codificação",
@@ -2980,16 +2638,6 @@ export default {
js: {
noLayers: "Nenhuma camada de codificação reconhecível detectada.",
},
- edu: {
- heading1: "O que é codificação vs. hashing?",
- heading2: "Como usar esta ferramenta",
- heading3: "Codificação em camadas explicada",
- heading4: "Guia de algoritmos de hash",
- p1: "
Codificação transforma dados em uma representação diferente que pode ser revertida (decodificada). Formatos comuns incluem Base64 — usado para transmitir dados binários por canais de texto —, codificação URL, codificação de entidades HTML e hexadecimal. Codificação não é criptografia; ela não oferece confidencialidade.
Hashing é uma transformação matemática de mão única. Uma função de hash criptográfica recebe qualquer entrada e produz uma impressão digital de tamanho fixo. Não é possível reverter um hash para recuperar a entrada original. Hashes são usados para verificar a integridade de arquivos, armazenar senhas com segurança e gerar assinaturas digitais.
",
- p2: "
Aba Encode / Decode: cole um texto e escolha uma operação (Base64, URL, HTML, Hex), ou clique em Auto-Detect Layers para desfazer automaticamente múltiplas codificações aninhadas.
Aba Hash: digite um texto ou selecione um arquivo, escolha algoritmos e clique em Hash All. Ative o modo HMAC para calcular hashes com chave usando um segredo compartilhado.
Aba Identify: cole um hash ou string codificada desconhecida e clique em Identify para ver algoritmos prováveis com níveis de confiança.
",
- p3: "
Dados do mundo real costumam ser codificados várias vezes. Por exemplo, um payload pode ser codificado em URL, depois em Base64, e então colocado dentro de uma string hex. O recurso Auto-Detect Layers inspeciona o padrão da entrada, tenta cada decodificação em sequência e visualiza cada etapa como um cartão, para que você veja exatamente como os dados foram envolvidos.
",
- p4: "
MD5 — saída de 128 bits. Criptograficamente quebrado; use apenas para compatibilidade legada ou checksums não relacionados à segurança.
SHA-1 — saída de 160 bits. Obsoleto para uso em segurança. Ainda encontrado em commits e certificados Git mais antigos.
SHA-256 — saída de 256 bits. Uso geral, amplamente usado em TLS, assinatura de código e verificações de integridade de dados.
SHA-512 — saída de 512 bits. Margem de segurança maior; preferido para fluxos relacionados a senhas.
bcrypt — função adaptativa de hashing de senhas com um fator de custo configurável. Use para armazenar senhas; não para integridade de dados.
",
- },
},
"oauth-debugger": {
name: "Depurador OAuth",
@@ -3045,16 +2693,6 @@ export default {
placeholder7: "https://yourapp.example.com/callback",
placeholder8: "openid profile email",
},
- edu: {
- heading1: "O que é PKCE e por que isso importa?",
- p1: "
Proof Key for Code Exchange (PKCE, RFC 7636) foi originalmente projetado para apps móveis e nativos que não conseguem armazenar um client secret com segurança. Funciona fazendo o cliente gerar um code_verifier aleatório, derivar dele um code_challenge (SHA-256 + base64url) e enviar o challenge junto com a requisição de autorização. Ao trocar o código de autorização por tokens, o cliente envia o code_verifier original. O servidor de autorização verifica se ele corresponde ao challenge anterior — provando que a requisição de token veio do mesmo cliente que iniciou o fluxo.
Mesmo para clientes confidenciais (aplicações server-side com um client secret), o PKCE agora é recomendado pelo OAuth 2.1 como defesa contra ataques de interceptação de código de autorização.
",
- heading2: "Por que o fluxo Implicit está obsoleto?",
- p2: "
O fluxo implícito (response_type=token) foi projetado como um atalho para single-page apps, retornando o access token diretamente no fragmento da URL. Isso cria problemas sérios: tokens em URLs aparecem no histórico do navegador, logs de servidor e headers de referrer, e o fluxo é vulnerável a ataques de injeção de token. O OAuth 2.0 Security Best Current Practice (RFC 9700) e o OAuth 2.1 removem explicitamente o fluxo implícito em favor do Authorization Code + PKCE, que SPAs podem usar com segurança sem um client secret.
Gere o par PKCE: crie um code_verifier aleatório e calcule code_challenge = BASE64URL(SHA256(code_verifier)).
Redirecione para o endpoint de autorização: inclua response_type=code, client_id, redirect_uri, scope, state, code_challenge e code_challenge_method=S256.
O usuário se autentica no servidor de autorização e concede o consentimento.
Receba o código de autorização no seu redirect_uri junto com o state ecoado — verifique se o state corresponde ao que você enviou.
Troque o código por tokens: faça um POST para o endpoint de token com grant_type=authorization_code, code, redirect_uri, client_id e code_verifier.
Receba o access token (e, opcionalmente, id_token e refresh_token) e use-os para chamar APIs.
JSON (JavaScript Object Notation) là định dạng trao đổi dữ liệu nhẹ, dễ đọc và viết cho người dùng, đồng thời dễ phân tích và tạo ra cho máy tính. Nó dựa trên một tập hợp con của Chuẩn ngôn ngữ lập trình JavaScript. JSON là định dạng văn bản hoàn toàn độc lập với ngôn ngữ nhưng sử dụng các quy ước quen thuộc với lập trình viên các ngôn ngữ họ C.
Những đặc tính này khiến JSON trở thành ngôn ngữ trao đổi dữ liệu lý tưởng cho ứng dụng web, API và tệp cấu hình. Nó đã trở thành tiêu chuẩn thực tế cho trao đổi dữ liệu trên web, thay thế rộng rãi XML nhờ kích thước nhỏ hơn và hiệu suất tốt hơn.
",
- heading2: "Cách sử dụng công cụ này",
- p2: "
Dán dữ liệu JSON thô hoặc lộn xộn của bạn vào trình soạn thảo bên trái.
Nhấp Format để làm đẹp mã với thụt lề đúng và tô sáng cú pháp.
Hoặc dùng Minify để xóa tất cả khoảng trắng cho mục đích sản xuất.
Kiểm tra chỉ báo Trạng thái để đảm bảo JSON của bạn hợp lệ; nếu có lỗi, công cụ sẽ làm nổi bật đúng dòng đó.
Nhấp Copy để lưu kết quả đã định dạng vào clipboard hoặc Clear để bắt đầu lại.
",
- heading3: "Các trường hợp sử dụng phổ biến",
- p3: "
Gỡ lỗi API: Nhanh chóng định dạng các phản hồi JSON khó đọc từ REST API để kiểm tra cấu trúc dữ liệu.
Xác thực cấu hình: Đảm bảo các tệp package.json, tsconfig.json hoặc các tệp cấu hình khác của bạn đúng cú pháp.
Chuẩn bị dữ liệu: Rút gọn dữ liệu JSON trước khi nhúng vào mã hoặc gửi qua mạng để tiết kiệm băng thông.
Học tập & Tài liệu: Sử dụng đầu ra đã định dạng để tạo ví dụ rõ ràng cho tài liệu kỹ thuật hoặc hướng dẫn.
",
- heading4: "Mẹo chuyên nghiệp",
- p4: "
Dùng nút Validate nếu bạn chỉ muốn kiểm tra lỗi cú pháp mà không thay đổi định dạng đầu vào.
Chú ý đến thống kê Độ sâu tối đa để phát hiện các cấu trúc quá phức tạp hoặc lồng nhau sâu có thể gây vấn đề hiệu suất.
Luôn dùng dấu ngoặc kép cho khóa và giá trị chuỗi, vì dấu ngoặc đơn không hợp lệ trong JSON chuẩn.
JSON Web Token (JWT) là một chuẩn mở (RFC 7519) định nghĩa cách thức gọn nhẹ và độc lập để truyền tải thông tin an toàn giữa các bên dưới dạng đối tượng JSON. Thông tin này có thể được xác minh và tin cậy vì nó được ký số. JWT có thể được ký bằng khóa bí mật (dùng thuật toán HMAC) hoặc cặp khóa công khai/riêng tư dùng RSA hoặc ECDSA.
Nhờ kích thước gọn nhẹ, JWT thường được dùng trong các kịch bản xác thực và trao đổi thông tin, chẳng hạn như Bearer token trong header HTTP Authorization.
",
- heading2: "Cách sử dụng công cụ này",
- p2: "
Dán token của bạn: Sao chép JWT đã mã hóa (header.payload.signature) và dán vào ô nhập liệu.
Tự động giải mã: Công cụ sẽ tự động nhận diện token và giải mã các thành phần theo thời gian thực.
Kiểm tra Header: Xem thuật toán (alg) và loại token (typ) trong phần Header.
Phân tích Payload: Xem xét các claim, chẳng hạn như thời gian hết hạn (exp), nhà phát hành (iss), và chủ thể (sub) trong phần Payload.
Xác minh Claim: Kiểm tra ô Phân tích Claim để xem ngày tháng dễ đọc và trạng thái xác thực.
",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "
Xác thực: Kiểm tra ID token hoặc access token từ các nhà cung cấp như Auth0, Firebase, hoặc AWS Cognito.
Gỡ lỗi: Tìm hiểu lý do backend của bạn từ chối token (ví dụ: kiểm tra xem token đã hết hạn chưa).
Kiểm toán bảo mật: Xác minh rằng dữ liệu nhạy cảm không bị vô tình lộ ra trong payload chưa mã hóa.
Phát triển: Nhanh chóng xem nội dung của token trong quá trình phát triển API mà không cần viết mã tùy chỉnh.
",
- heading4: "Mẹo hay",
- p4: "
JWT không được mã hóa: Hãy nhớ rằng JWT chuẩn chỉ được ký, không được mã hóa. Bất kỳ ai có token đều có thể đọc payload. Không bao giờ lưu mật khẩu hoặc khóa riêng tư trong JWT.
Kiểm tra thời hạn: Luôn xác minh claim exp. Nếu token đã hết hạn, ứng dụng của bạn nên từ chối nó.
Sử dụng HTTPS: Vì JWT thường được dùng để xác thực, chúng phải luôn được truyền qua kết nối HTTPS an toàn để tránh bị đánh chặn.
Một JWT thường gồm ba phần ngăn cách bởi dấu chấm:
Header: Thường gồm hai phần: loại token (JWT) và thuật toán ký được sử dụng (ví dụ: HS256 hoặc RS256).
Payload: Chứa các claim — các phát biểu về một thực thể (thường là người dùng) và dữ liệu bổ sung.
Signature: Được tạo bằng cách lấy header đã mã hóa, payload đã mã hóa, khóa bí mật, và thuật toán được chỉ định trong header, rồi ký lên đó.
",
- heading6: "Lưu ý về bảo mật",
- p6: "
Mặc dù JWT được ký để đảm bảo tính toàn vẹn, chúng thường KHÔNG được mã hóa. Điều này có nghĩa là bất kỳ ai có token đều có thể giải mã header và payload để đọc thông tin bên trong. Không bao giờ lưu thông tin nhạy cảm như mật khẩu hoặc khóa riêng tư trong payload của JWT.
Ngoài ra, luôn xác minh claim exp (thời gian hết hạn) để ngăn chặn tấn công replay, và đảm bảo máy chủ của bạn xác thực chữ ký trước khi tin tưởng dữ liệu trong payload.
",
- heading7: "Mẹo hay",
- p7: "
Sử dụng claim exp để đặt thời gian hết hạn ngắn cho access token nhằm giảm thiểu tác động khi token bị đánh cắp.
Luôn sử dụng HTTPS để truyền JWT nhằm tránh bị đánh chặn qua tấn công man-in-the-middle.
Nếu sử dụng thuật toán bất đối xứng (như RS256), bạn có thể chia sẻ khóa công khai để các dịch vụ khác xác minh token của bạn mà không thể tạo ra chúng.
Kiểm tra claim nbf (Not Before) nếu bạn muốn phát hành một token chỉ có hiệu lực từ một thời điểm cụ thể trong tương lai.
",
- },
cheatsheet: {
title: "Tham khảo nhanh JWT",
h0: "Cấu trúc",
@@ -193,16 +167,6 @@ export default {
text0: "✓ Đã sao chép!",
tpl1: "GUID:",
},
- edu: {
- heading1: "UUID là gì?",
- p1: "Universally Unique Identifier (UUID) là một số 128-bit dùng để định danh duy nhất thông tin trong các hệ thống máy tính. Chúng được thiết kế để tạo ra độc lập mà không cần một cơ quan trung tâm, trong khi vẫn duy trì xác suất trùng lặp gần như bằng không.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Chọn phiên bản UUID (v1 cho dạng dựa trên thời gian, v4 cho ngẫu nhiên) và số lượng ID bạn cần. Nhấp Tạo để tạo danh sách mã định danh duy nhất, sẵn sàng sử dụng trong cơ sở dữ liệu hoặc ứng dụng của bạn.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Khóa chính trong cơ sở dữ liệu phân tán, mã định danh phiên, theo dõi giao dịch, và đặt tên cho tệp tạm hoặc tài nguyên khi tính duy nhất là yếu tố quan trọng trên nhiều hệ thống.",
- heading4: "Mẹo hay",
- p4: "UUID v4 là lựa chọn phổ biến nhất cho mã định danh duy nhất dùng chung vì nó dựa vào tính ngẫu nhiên chất lượng cao. Sử dụng v1 nếu bạn cần sắp xếp ID theo thời gian tạo.",
- },
},
"password-generator": {
name: "Trình Tạo Mật Khẩu",
@@ -265,24 +229,6 @@ export default {
status6: "Yếu",
text1: "Vui lòng nhập địa chỉ email gốc hợp lệ.",
},
- edu: {
- heading1: "Điều gì làm cho mật khẩu trở nên an toàn?",
- p1: "
Mật khẩu an toàn là tuyến phòng thủ đầu tiên của bạn chống lại truy cập trái phép. Trong thời đại tính toán tốc độ cao hiện nay, bảo mật được định nghĩa bởi entropy — thước đo tính ngẫu nhiên và khó đoán của một chuỗi ký tự. Mật khẩu mạnh phải dài (ít nhất 16 ký tự), duy nhất cho mỗi tài khoản và bao gồm nhiều loại ký tự khác nhau như chữ hoa, chữ thường, số và ký tự đặc biệt.
Tránh sử dụng thông tin cá nhân như ngày sinh, tên thú cưng hoặc các từ thông thường trong từ điển. Ngay cả những thay thế có vẻ phức tạp như P@ssw0rd123 cũng dễ dàng bị phá vỡ bởi các công cụ brute-force hiện đại sử dụng từ điển khổng lồ các mẫu phổ biến.
",
- heading2: "Cách sử dụng công cụ này",
- p2: "
Chọn chế độ: Chọn giữa Mật khẩu, Tên đăng nhập, Cụm mật khẩu hoặc Bí danh email tùy theo nhu cầu.
Điều chỉnh độ dài: Dùng thanh trượt để đặt độ dài mong muốn. Với mật khẩu, 16+ ký tự được khuyến nghị cho bảo mật cao.
Cấu hình tùy chọn: Bật/tắt các bộ ký tự (ký tự đặc biệt, số, v.v.) hoặc kiểu (dễ đọc vs. an toàn).
Tạo: Nhấp nút Tạo để tạo thông tin đăng nhập độc đáo của bạn.
Sao chép: Dùng biểu tượng sao chép để chuyển kết quả an toàn vào clipboard hoặc trình quản lý mật khẩu.
",
- heading3: "Các trường hợp sử dụng phổ biến",
- p3: "
Bảo mật tài khoản: Tạo mật khẩu độc đáo, entropy cao cho mỗi dịch vụ trực tuyến bạn sử dụng.
Quản trị hệ thống: Tạo mật khẩu tạm thời an toàn cho người dùng mới hoặc tài khoản dịch vụ.
Bảo vệ quyền riêng tư: Dùng Plus Alias (vd: nguoidung+dichvu@domain.com) để theo dõi dịch vụ nào bán dữ liệu của bạn hoặc lọc spam.
Bảo mật dễ nhớ: Dùng trình tạo Cụm mật khẩu cho mật khẩu chính cần nhập tay nhưng vẫn chống phá khóa.
",
- heading4: "Mẹo chuyên nghiệp",
- p4: "
Dùng trình quản lý mật khẩu: Đừng cố gắng ghi nhớ mật khẩu phức tạp. Dùng công cụ này để tạo và lưu chúng trong trình quản lý uy tín như Bitwarden, 1Password hoặc KeePassXC.
Entropy hơn Độ phức tạp: Độ dài thường quan trọng hơn sự đa dạng ký tự. Mật khẩu 20 ký tự thường khó phá hơn mật khẩu 8 ký tự phức tạp.
Thay đổi sau vi phạm: Nếu dịch vụ bạn dùng bị xâm phạm, hãy dùng bộ tạo này để tạo mật khẩu hoàn toàn mới ngay lập tức.
",
- heading5: "Điều gì làm cho mật khẩu trở nên an toàn?",
- p5: "
Mật khẩu an toàn là tuyến phòng thủ đầu tiên của bạn. Entropy là thước đo tính ngẫu nhiên của mật khẩu. Mật khẩu mạnh phải dài, độc đáo và đa dạng ký tự.
",
- heading6: "Giải thích về Entropy",
- p6: "
Entropy là thước đo tính ngẫu nhiên và khó đoán của mật khẩu, thường được biểu thị bằng bit. Entropy càng cao, mật khẩu càng mạnh. Bộ tạo của chúng tôi tính toán entropy theo thời gian thực để cung cấp đánh giá khách quan về độ mạnh mật khẩu của bạn.
",
- heading7: "Thực hành tốt nhất",
- p7: "
Không bao giờ dùng lại mật khẩu: Dùng mật khẩu độc đáo cho mỗi tài khoản.
Dùng trình quản lý mật khẩu: Con người không thể nhớ hàng chục mật khẩu phức tạp, hãy dùng trình quản lý uy tín.
Bật MFA: Xác thực đa yếu tố thêm lớp bảo mật thứ hai quan trọng.
Tránh thông tin cá nhân: Không bao giờ dùng tên, ngày sinh hoặc từ thông thường.
",
- heading8: "Mẹo chuyên nghiệp",
- p8: "
Dùng chế độ Cụm mật khẩu cho tài khoản cần nhập tay; dễ nhớ hơn nhưng vẫn rất an toàn.
Để bảo mật tối đa, tạo mật khẩu dài nhất được phép bởi dịch vụ (thường 64 hoặc 128 ký tự).
Thường xuyên kiểm tra mật khẩu đã lưu bằng tính năng kiểm tra bảo mật tích hợp của trình quản lý.
Cân nhắc dùng Plus Alias (vd: nguoidung+dichvu@gmail.com) để theo dõi dịch vụ nào bán dữ liệu của bạn.
Hashing mật mã học là một quá trình toán học biến đổi bất kỳ dữ liệu đầu vào nào (văn bản hoặc tệp) thành một chuỗi ký tự có độ dài cố định, thường là một số thập lục phân. Dấu vân tay này là duy nhất đối với dữ liệu đầu vào; chỉ cần thay đổi một bit trong dữ liệu gốc cũng sẽ tạo ra một hash hoàn toàn khác, hiện tượng này được gọi là hiệu ứng tuyết lở.
Khác với mã hóa, hashing là một hàm một chiều. Bạn không thể đảo ngược hash để lấy lại dữ liệu gốc. Điều này khiến nó trở nên lý tưởng để xác minh tính toàn vẹn dữ liệu, lưu trữ mật khẩu an toàn (khi kết hợp với salt), và nhận diện tệp mà không cần để lộ nội dung của chúng.
",
- heading2: "Cách sử dụng công cụ này",
- p2: "
Chọn loại dữ liệu đầu vào: Chọn tab Văn bản cho chuỗi ký tự hoặc tab Tệp cho tệp cục bộ.
Cung cấp dữ liệu: Dán văn bản hoặc kéo thả tệp vào khu vực làm việc.
HMAC tùy chọn: Nhập khóa bí mật vào ô HMAC nếu bạn cần tạo hash có khóa để xác thực.
Xem kết quả: Công cụ tự động tính nhiều biến thể hash (SHA-256, SHA-512, v.v.) theo thời gian thực.
Xác minh tính toàn vẹn: Dùng tab Xác minh để so sánh một hash đã biết với dữ liệu đầu vào của bạn nhằm kiểm tra sự can thiệp.
",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "
Xác minh phần mềm: Kiểm tra checksum SHA-256 của trình cài đặt đã tải xuống để đảm bảo nó không bị hỏng hoặc bị bên thứ ba sửa đổi.
Tính toàn vẹn dữ liệu: Tạo hash cho bản ghi cơ sở dữ liệu hoặc tệp cấu hình để phát hiện thay đổi trái phép theo thời gian.
Bảo mật mật khẩu: Hiểu cách các thuật toán khác nhau (như SHA-512) biến đổi văn bản thuần thành các biểu diễn an toàn.
Pháp y kỹ thuật số: Nhận diện tệp trùng lặp hoặc xác minh rằng bằng chứng chưa bị thay đổi.
",
- heading4: "Mẹo hay",
- p4: "
Ưu tiên SHA-256 trở lên: Luôn sử dụng SHA-256 hoặc SHA-512 cho các tác vụ nhạy cảm về bảo mật. MD5 và SHA-1 đã bị phá vỡ về mặt mật mã học và chỉ nên dùng cho khả năng tương thích với hệ thống cũ.
Dùng HMAC để xác thực: Nếu bạn cần xác minh cả tính toàn vẹn lẫn danh tính người gửi, hãy dùng HMAC với khóa bí mật dùng chung.
Kiểm tra nguồn: Khi xác minh tệp tải xuống, luôn lấy hash mong đợi từ một trang web chính thức đáng tin cậy, được bảo mật bằng HTTPS.
",
- },
cheatsheet: {
title: "Tham khảo thuật toán Hash",
h0: "So sánh thuật toán",
@@ -435,16 +371,6 @@ export default {
text5: "Sử dụng ít nhất /",
text6: "IPv6 /",
},
- edu: {
- heading1: "CIDR là gì?",
- heading2: "Cách sử dụng công cụ này",
- heading3: "Các trường hợp sử dụng phổ biến",
- heading4: "Mẹo chuyên nghiệp",
- p1: "Classless Inter-Domain Routing (CIDR) là phương pháp phân bổ địa chỉ IP và định tuyến IP. Nó thay thế hệ thống cũ dựa trên lớp (A, B và C) để cung cấp tính linh hoạt và hiệu quả hơn trong phân phối địa chỉ.",
- p2: "Nhập địa chỉ IP với tiền tố (vd: 192.168.1.0/24) hoặc dùng thanh trượt để điều chỉnh độ dài tiền tố. Nhấp \"Run analysis\" để xem chi tiết mạng, dải host khả dụng và biểu diễn nhị phân.",
- p3: "Lập kế hoạch subnet mạng cho hạ tầng đám mây (VPC), khắc phục sự cố định tuyến, tính toán dung lượng host cho một tiền tố nhất định và chuyển đổi giữa CIDR và mặt nạ subnet.",
- p4: "Hãy nhớ rằng trong IPv4, địa chỉ đầu tiên và cuối cùng trong một subnet thường được dành cho ID mạng và địa chỉ broadcast. Trong IPv6, các subnet hầu như luôn là /64 cho mạng cục bộ chuẩn.",
- },
cheatsheet: {
title: "Tham chiếu nhanh về subnet",
h0: "Các subnet phổ biến",
@@ -619,16 +545,6 @@ export default {
tpl3: "Đổi mặc định:",
tpl4: "Không tìm thấy cổng nào khớp với tìm kiếm của bạn.",
},
- edu: {
- heading1: "Danh mục cổng & Hướng dẫn bảo mật",
- p1: "Cổng well-known (0-1023) được IANA cấp và yêu cầu quyền root trên hệ thống Unix. Cổng registered (1024-49151) được ứng dụng sử dụng. Cổng dynamic/ephemeral (49152-65535) được dùng cho kết nối phía client. Hiểu rõ các dải cổng là điều cần thiết để cấu hình tường lửa và bảo mật mạng.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Tìm theo số cổng hoặc tên dịch vụ để xem chi tiết giao thức và mức độ rủi ro bảo mật. Lọc theo danh mục (Well-Known, Registered, Dynamic) hoặc giao thức (TCP/UDP) để thu hẹp kết quả. Nhấp vào bất kỳ hàng nào để xem chi tiết đầy đủ bao gồm các lỗ hổng phổ biến và khuyến nghị tăng cường bảo mật.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Cấu hình quy tắc tường lửa, khắc phục sự cố mạng, xác định các cổng mở bất thường trong quá trình kiểm toán bảo mật, và tham khảo nhanh về việc gán cổng giao thức.",
- heading4: "Mẹo hay",
- p4: "Sử dụng bộ lọc rủi ro để nhanh chóng xác định các cổng rủi ro cao trong mạng của bạn. Phần 50 cổng phổ biến nhất cho bạn cái nhìn tổng quan tức thì về các dịch vụ được sử dụng thường xuyên nhất.",
- },
cheatsheet: {
c2: "\n
\n
Đóng các cổng không dùng: Giảm bề mặt tấn công bằng cách tắt những dịch vụ không cần thiết
\n
Dùng tường lửa: Triển khai kiểm soát truy cập ở mức mạng
\n
Theo dõi lưu lượng: Ghi lại các kết nối tới cổng quan trọng (22, 443, 3389)
\n
Ưu tiên giao thức mã hoá: Dùng SSH (22) thay cho Telnet (23), SFTP thay cho FTP
\n
Thay đổi giá trị mặc định: Cân nhắc dùng cổng không chuẩn cho SSH/RDP (bảo mật nhờ ẩn giấu)
\n
",
c1: "\n
\n
Cổng
Dịch vụ
Rủi ro
\n
21
FTP
Truyền tệp không được mã hoá
\n
23
Telnet
Xác thực bằng văn bản thuần
\n
25
SMTP
Rủi ro chuyển tiếp thư rác
\n
53
DNS
Tấn công khuếch đại DDoS
\n
445
SMB
Lây lan mã độc tống tiền
\n
3389
RDP
Tấn công dò mật khẩu
\n
",
@@ -872,16 +788,6 @@ export default {
text4: "Cảnh báo",
alert0: "Vui lòng tạo cấu hình trước",
},
- edu: {
- heading1: "Về WireGuard",
- p1: "WireGuard là một giao thức VPN hiện đại, hiệu năng cao sử dụng mật mã học tiên tiến. Nó được thiết kế để đơn giản và nhanh hơn các giao thức cũ như OpenVPN và IPsec, với bề mặt tấn công nhỏ hơn nhiều nhờ codebase tối giản. WireGuard hiện đã là một phần của nhân Linux và được hỗ trợ gốc trên Windows, macOS, iOS và Android.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Chọn một mẫu cấu trúc liên kết (Point-to-Point, Hub-and-Spoke, Site-to-Site, hoặc Road Warrior) để điền sẵn cấu hình. Nhấp Tạo khóa để tạo cặp khóa mới cục bộ trong trình duyệt của bạn. Điền các trường bắt buộc và nhấp Tạo cấu hình để tạo tệp cấu hình WireGuard. Dùng Tải xuống .conf để lưu tệp hoặc Tạo mã QR để tạo mã QR nhập trên di động.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "VPN truy cập từ xa cho nhân viên kết nối vào mạng công ty. VPN site-to-site để kết nối mạng các văn phòng chi nhánh. Máy chủ VPN cá nhân để duyệt web an toàn trên Wi-Fi công cộng. Tunneling thiết bị IoT để giao tiếp an toàn giữa các thiết bị nhúng.",
- heading4: "Mẹo hay",
- p4: "Sử dụng PersistentKeepalive = 25 trên các client sau NAT để duy trì tunnel khi không có lưu lượng đi qua. PresharedKey thêm một lớp mã hóa đối xứng bổ sung để chống lại tấn công hậu lượng tử. AllowedIPs = 0.0.0.0/0 định tuyến toàn bộ lưu lượng qua tunnel (full tunnel), trong khi các CIDR cụ thể tạo ra split tunnel.",
- },
cheatsheet: {
title: "Tham khảo nhanh WireGuard",
h0: "Trường Interface",
@@ -1025,14 +931,6 @@ export default {
tpl6: "Ví dụ:",
tpl7: "Nhấp vào bất kỳ trường nào trong sơ đồ để xem chi tiết.",
},
- edu: {
- heading1: "Header giao thức là gì?",
- p1: "Header giao thức là dữ liệu có cấu trúc đứng trước payload trong các gói tin mạng. Chúng chứa thông tin điều khiển như địa chỉ nguồn và đích, loại giao thức, số thứ tự, và checksum. Hiểu rõ cấu trúc header là điều cần thiết để gỡ lỗi mạng, phân tích gói tin, và triển khai giao thức.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Chọn một giao thức từ các tab để xem cấu trúc header của nó. Mỗi khối màu đại diện cho một trường với kích thước được hiển thị. Nhấp vào bất kỳ trường nào để xem thông tin chi tiết bao gồm tên trường và mô tả, offset bit/byte, các giá trị phổ biến và ý nghĩa của chúng, và tham chiếu RFC. Dùng trình phân tích hex dump để phân tích các gói tin thực tế bằng cách dán kết quả hex từ các công cụ như tcpdump hoặc Wireshark.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Phân tích gói tin để hiểu cấu trúc của lưu lượng mạng đã bắt được, học giao thức như một công cụ hỗ trợ trực quan để nghiên cứu các giao thức mạng, gỡ lỗi để xác định header bị lỗi hoặc giá trị trường không chính xác, và tham khảo phát triển khi triển khai các giao thức mạng.",
- },
cheatsheet: {
c3: "\n
\n
Giá trị
Giao thức
\n
0x0800
IPv4
\n
0x0806
ARP
\n
0x86DD
IPv6
\n
0x8100
VLAN (802.1Q)
\n
",
c2: "\n
\n
Trường
Kích thước
Mô tả
\n
Source Port
2 byte
Số cổng bên gửi
\n
Dest Port
2 byte
Số cổng bên nhận
\n
Seq Number
4 byte
Số thứ tự
\n
Ack Number
4 byte
Số xác nhận
\n
Data Offset
4 bit
Độ dài tiêu đề / 4
\n
Flags
9 bit
NS,CWR,ECE,URG,ACK,PSH,RST,SYN,FIN
\n
Window
2 byte
Kích thước cửa sổ nhận
\n
",
@@ -1108,16 +1006,6 @@ export default {
tpl0: "Khác biệt",
tpl1: "Không tìm thấy khác biệt (hoặc dữ liệu đầu vào trống)",
},
- edu: {
- heading1: "So sánh văn bản (Text Diffing) là gì?",
- p1: "So sánh văn bản là quá trình so sánh hai chuỗi dữ liệu để xác định sự khác biệt giữa chúng. Nó làm nổi bật những gì đã được thêm vào, xóa bỏ, hoặc sửa đổi. Đây là một thao tác cơ bản trong phát triển phần mềm, phân tích dữ liệu, và quản lý nội dung, cho phép người dùng theo dõi thay đổi theo thời gian hoặc so sánh các phiên bản khác nhau của một tài liệu.",
- heading2: "Thuật toán Diff",
- p2: "Hầu hết các công cụ so sánh văn bản đều sử dụng thuật toán dựa trên bài toán Dãy con chung dài nhất (Longest Common Subsequence - LCS). Mục tiêu là tìm dãy phần tử dài nhất xuất hiện trong cả hai văn bản theo cùng thứ tự tương đối. Các triển khai phổ biến bao gồm thuật toán Myers diff, rất hiệu quả và được Git sử dụng, và thuật toán Hunt-McIlroy. Các thuật toán này tính toán số lượng chỉnh sửa tối thiểu cần thiết để biến đổi văn bản này thành văn bản khác.",
- heading3: "Trường hợp sử dụng",
- p3: "Code review để nhà phát triển có thể xem chính xác những gì đã thay đổi trong một pull request. Hệ thống quản lý phiên bản như Git lưu trữ lịch sử dưới dạng chuỗi các diff để tiết kiệm dung lượng. Kiểm toán nội dung cho người viết và biên tập viên so sánh các bản nháp để đảm bảo tất cả các thay đổi yêu cầu đã được thực hiện. Xác thực dữ liệu để so sánh tệp cấu hình hoặc dữ liệu xuất từ cơ sở dữ liệu nhằm tìm ra sự khác biệt.",
- heading4: "Mẹo hay",
- p4: "Nhiều công cụ diff có tùy chọn bỏ qua các thay đổi về thụt lề hoặc khoảng trắng cuối dòng, giúp giảm nhiễu khi so sánh mã. Bao gồm một vài dòng văn bản không thay đổi xung quanh các khác biệt (dòng ngữ cảnh) để hiểu tác động của các thay đổi. Diff cấp từ thường hữu ích hơn cho văn xuôi và tài liệu ngôn ngữ tự nhiên, trong khi diff cấp dòng là tiêu chuẩn cho mã nguồn.",
- },
},
"regex-visualizer": {
name: "Trực Quan Hóa Regex",
@@ -1168,16 +1056,6 @@ export default {
tpl5: "Không có nhóm",
tpl6: "Biểu thức chính quy không hợp lệ",
},
- edu: {
- heading1: "Biểu thức chính quy là gì?",
- p1: "Biểu thức chính quy (regex) là các mẫu mạnh mẽ dùng để khớp các tổ hợp ký tự trong chuỗi. Chúng là công cụ thiết yếu để xử lý văn bản, xác thực, và trích xuất dữ liệu trên nhiều ngôn ngữ lập trình. Mẫu regex bao gồm các ký tự chữ và các siêu ký tự đặc biệt định nghĩa quy tắc tìm kiếm. Chúng được dùng trong xác thực biểu mẫu, phân tích log, thao tác tìm và thay thế, và các tác vụ làm sạch dữ liệu.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Nhập mẫu regex của bạn vào ô nhập liệu. Công cụ sẽ tự động tạo sơ đồ railroad trực quan hóa cấu trúc mẫu. Thêm văn bản kiểm tra để xem việc tô sáng kết quả khớp và giải thích theo thời gian thực. Dùng bảng tham khảo nhanh để tra cứu các mẫu và cú pháp phổ biến. Tạo đoạn mã cho ngôn ngữ lập trình bạn ưa thích.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Xác thực email để đảm bảo dữ liệu người dùng nhập khớp đúng định dạng email trước khi xử lý, phân tích log để trích xuất dấu thời gian và địa chỉ IP từ nhật ký máy chủ, làm sạch dữ liệu để loại bỏ ký tự không mong muốn hoặc định dạng số điện thoại nhất quán, và tìm và thay thế cho các phép biến đổi văn bản hàng loạt bằng khớp mẫu.",
- heading4: "Mẹo hay",
- p4: "Bắt đầu đơn giản và xây dựng các mẫu phức tạp dần dần. Sử dụng nhóm không bắt (?:) khi bạn không cần tham chiếu đến kết quả khớp. Kiểm tra các trường hợp biên như chuỗi rỗng và ký tự đặc biệt. Cân nhắc khả năng đọc của regex — các mẫu phức tạp có thể được ghi chú bằng comment.",
- },
cheatsheet: {
title: "Tham khảo nhanh Regex",
h0: "Lớp ký tự",
@@ -1323,16 +1201,6 @@ export default {
text1: "Sao chép",
tpl2: "mkdir -p ~/.ssh && chmod 700 ~/.ssh\necho \\\"PUBLIC_KEY\\\" >> ~/.ssh/authorized_keys\nchmod 600 ~/.ssh/authorized_keys",
},
- edu: {
- heading1: "Cron Job là gì?",
- p1: "Cron job là trình lập lịch tác vụ dựa trên thời gian trong các hệ điều hành giống Unix. Nó được dùng để chạy lệnh hoặc script tự động vào các thời điểm hoặc khoảng thời gian đã lên lịch. Tên xuất phát từ Chronos, thần thời gian trong thần thoại Hy Lạp. Cron job rất cần thiết cho tự động hóa hệ thống, như lập lịch sao lưu, gửi báo cáo qua email hoặc dọn dẹp tệp tạm thời.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Chọn tab thích hợp (Phút, Giờ, Ngày, Tháng, Tuần) để cấu hình từng phần của biểu thức. Chọn 'Mỗi' cho ký tự đại diện (*) hoặc nhập các giá trị cụ thể. Biểu thức cron được cập nhật theo thời gian thực ở trên cùng. Dùng bản xem trước 'Lần chạy tiếp theo' để xác minh lịch trình của bạn hoạt động như mong đợi. Sao chép biểu thức đã hoàn thiện vào clipboard chỉ bằng một cú nhấp.",
- heading3: "Các trường hợp sử dụng phổ biến",
- p3: "Sao lưu cơ sở dữ liệu theo lịch mỗi ngày vào lúc nửa đêm. Tạo báo cáo mỗi sáng thứ Hai. Dọn dẹp tệp log mỗi giờ. Gửi thông báo kiểm tra sức khỏe mỗi 5 phút. Làm mới bộ nhớ đệm hàng ngày vào các thời điểm cụ thể.",
- heading4: "Mẹo chuyên nghiệp",
- p4: "Luôn kiểm tra biểu thức cron của bạn với một công cụ như thế này trước khi triển khai vào sản xuất. Hãy nhớ rằng cron job chạy theo múi giờ địa phương của máy chủ, điều này có thể gây vấn đề trong các hệ thống phân tán. Luôn ghi lại cron job của bạn bằng comment trong crontab để làm rõ mục đích của chúng cho tham khảo sau này.",
- },
cheatsheet: {
title: "Tham khảo nhanh khóa SSH",
h0: "Loại khóa",
@@ -1372,16 +1240,6 @@ export default {
tpl2: "Không có Tên thay thế của chủ thể.",
tpl3: "Không có phần mở rộng nào được phân tích.",
},
- edu: {
- heading1: "Chứng chỉ X.509 là gì?",
- heading2: "Cách sử dụng công cụ này",
- heading3: "Trường hợp sử dụng phổ biến",
- heading4: "Mẹo hay",
- p1: "
X.509 là định dạng chuẩn cho chứng chỉ khóa công khai, là các tài liệu số liên kết an toàn một khóa công khai với một danh tính (như website, tổ chức, hoặc cá nhân). Các chứng chỉ này là nền tảng của Hạ tầng khóa công khai (PKI) được dùng để bảo mật internet qua HTTPS, cũng như để ký email và phần mềm.
Một chứng chỉ X.509 chứa khóa công khai, danh tính của chủ sở hữu chứng chỉ, và chữ ký số của Tổ chức chứng thực (CA) đã cấp chứng chỉ, chứng minh tính xác thực của nó.
",
- p2: "
Dán chứng chỉ của bạn: Sao chép chứng chỉ mã hóa PEM (bao gồm cả header BEGIN và END) và dán vào ô nhập liệu.
Phân tích: Nhấp \"Phân tích chứng chỉ\" để trích xuất và phân tích dữ liệu.
Xem tóm tắt: Kiểm tra các thẻ ở trên cùng để xem Tên thông thường (CN), Nhà phát hành, và ngày hiệu lực.
Kiểm tra chi tiết: Mở rộng các phần bên dưới để xem đầy đủ Chủ thể, Nhà phát hành, SAN, và các phần mở rộng kỹ thuật.
Kiểm tra trạng thái: Xem huy hiệu trạng thái để biết chứng chỉ hiện đang hợp lệ hay đã hết hạn.
",
- p3: "
Khắc phục sự cố SSL/TLS: Chẩn đoán lý do một website hiển thị cảnh báo \"Not Secure\" bằng cách kiểm tra hết hạn hoặc không khớp hostname.
Kiểm toán bảo mật: Xác minh rằng một chứng chỉ được cấp bởi CA đáng tin cậy và sử dụng thuật toán chữ ký mạnh (như SHA-256).
Phát triển: Kiểm tra chứng chỉ tự ký hoặc CSR (Yêu cầu ký chứng chỉ) trong quá trình phát triển cục bộ.
Quản lý hạ tầng: Kiểm tra Tên thay thế của chủ thể (SAN) để đảm bảo tất cả các subdomain cần thiết được bao phủ bởi một chứng chỉ duy nhất.
",
- p4: "
Kiểm tra SAN: Các trình duyệt hiện đại dựa vào phần mở rộng Tên thay thế của chủ thể (SAN) thay vì Tên thông thường (CN) để xác minh hostname. Luôn đảm bảo tên miền của bạn được liệt kê trong SAN.
Xác minh chuỗi chứng thực: Nếu một chứng chỉ hợp lệ nhưng vẫn không đáng tin cậy, có thể nó đang thiếu chứng chỉ trung gian. Kiểm tra \"Nhà phát hành\" để xác định CA trung gian nào bạn cần thêm vào máy chủ của mình.
Fingerprint cho Pinning: Sử dụng Fingerprint SHA-256 do công cụ này cung cấp nếu bạn cần triển khai certificate pinning trong ứng dụng di động hoặc API bảo mật cao.
",
- },
cheatsheet: {
title: "Tham khảo chứng chỉ X.509",
h0: "Trường chứng chỉ",
@@ -1424,16 +1282,6 @@ export default {
text1: "Sao chép JSON",
text2: "Sao chép XML",
},
- edu: {
- heading1: "SAML là gì?",
- p1: "Security Assertion Markup Language (SAML) là một chuẩn mở dựa trên XML dùng để trao đổi dữ liệu xác thực và ủy quyền giữa các bên, đặc biệt là giữa Nhà cung cấp danh tính (IdP) và Nhà cung cấp dịch vụ (SP). SAML là nền tảng của nhiều giải pháp Single Sign-On (SSO) doanh nghiệp, cho phép người dùng truy cập nhiều ứng dụng chỉ với một bộ thông tin đăng nhập. Phiên bản phổ biến nhất là SAML 2.0, sử dụng token bảo mật chứa các assertion để truyền thông tin về một principal giữa IdP và SP.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Dán SAMLResponse mã hóa Base64 hoặc XML thô vào ô nhập liệu. Bật tùy chọn Thử giải nén nếu bạn đang giải mã payload theo binding Redirect. Nhấp Giải mã phản hồi để phân tích thông điệp. Kiểm tra Tóm tắt nhanh để xem Nhà phát hành, Chủ thể, và trạng thái hiệu lực. Xem các thuộc tính người dùng đã giải mã trong bảng Thuộc tính. Dùng các tab để xem XML định dạng đẹp, Chi tiết Assertion, hoặc biểu diễn JSON của các claim.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Khắc phục sự cố SSO bằng cách chẩn đoán lý do người dùng không thể đăng nhập, kiểm tra assertion hết hạn hoặc không khớp audience. Kiểm thử tích hợp để xác minh Nhà cung cấp danh tính của bạn đang gửi đúng thuộc tính. Kiểm toán bảo mật để kiểm tra XML thô và đảm bảo các assertion được ký đúng cách. Phát triển để nhanh chóng xem nội dung của một thông điệp SAML trong quá trình tích hợp Nhà cung cấp dịch vụ.",
- heading4: "Mẹo hay",
- p4: "Các thông điệp SAML gửi qua HTTP-Redirect thường được nén (deflate) trước khi mã hóa Base64 — nếu việc giải mã của bạn thất bại, hãy thử bật ô Thử giải nén. Đảm bảo AudienceRestriction khớp với SP Entity ID của bạn. Nếu một phản hồi bị đánh dấu không hợp lệ, hãy kiểm tra thời gian NotBefore và NotOnOrAfter để xem có lệch đồng hồ giữa IdP và SP hay không.",
- },
cheatsheet: {
title: "Tham khảo nhanh SAML",
h0: "Luồng SAML",
@@ -1476,16 +1324,6 @@ export default {
alert1: "Vui lòng nhập chuỗi User-Agent",
tpl2: "Kết quả phân tích thô",
},
- edu: {
- heading1: "User-Agent là gì?",
- p1: "User-Agent là một chuỗi được trình duyệt của bạn gửi đến mọi website bạn truy cập. Nó xác định phiên bản trình duyệt, hệ điều hành, và loại thiết bị, cho phép máy chủ tối ưu hóa nội dung cho môi trường cụ thể của bạn.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Dán một chuỗi User-Agent vào ô nhập liệu hoặc nhấp Dùng cái này để phân tích chuỗi trình duyệt hiện tại của bạn. Công cụ sẽ phân tích chi tiết engine trình duyệt, phiên bản hệ điều hành, và đặc điểm thiết bị.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Gỡ lỗi các vấn đề tương thích website, phân tích nhật ký máy chủ web để xác định lưu lượng bot, xác minh giả mạo trình duyệt, và hiểu phân bố thiết bị của đối tượng người dùng.",
- heading4: "Mẹo hay",
- p4: "Nhiều trình duyệt hiện đại đóng băng hoặc đơn giản hóa chuỗi User-Agent của họ để ngăn chặn fingerprinting. Luôn tìm token Version hoặc Chrome để có thông tin phiên bản chính xác nhất.",
- },
},
"qr-code": {
name: "Trình Tạo Mã QR",
@@ -1524,16 +1362,6 @@ export default {
alert3: "Đã sao chép!",
tpl4: "Tải ảnh lên để giải mã",
},
- edu: {
- heading1: "Mã QR là gì?",
- p1: "Mã Quick Response (QR) là mã vạch hai chiều có thể lưu trữ nhiều loại dữ liệu khác nhau, phổ biến nhất là URL. Chúng có thể được quét bằng điện thoại thông minh và các đầu đọc chuyên dụng để truy cập thông tin nhanh chóng hoặc kích hoạt các hành động.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Nhập văn bản hoặc URL bạn muốn mã hóa. Điều chỉnh kích thước và mức sửa lỗi nếu cần. Mã QR cập nhật theo thời gian thực và có thể tải xuống dưới dạng ảnh để in hoặc sử dụng kỹ thuật số.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Chia sẻ liên kết website, cung cấp thông tin đăng nhập Wi-Fi, danh thiếp số (vCard), vé sự kiện, và các luồng thanh toán di động hoặc xác thực.",
- heading4: "Mẹo hay",
- p4: "Mức sửa lỗi cao hơn (H hoặc Q) cho phép mã QR vẫn quét được ngay cả khi bị hỏng một phần hoặc bị che khuất, lý tưởng cho biển hiệu vật lý hoặc thương hiệu.",
- },
},
"timestamp-converter": {
name: "Chuyển Đổi Dấu Thời Gian",
@@ -1564,16 +1392,6 @@ export default {
text0: "Dấu thời gian không hợp lệ",
tpl1: "Unix (mili giây)",
},
- edu: {
- heading1: "Unix Time là gì?",
- p1: "Unix time (còn gọi là Epoch time, POSIX time hoặc Unix timestamp) là hệ thống mô tả một thời điểm cụ thể. Đây là số giây đã trôi qua kể từ Unix Epoch, trừ giây nhuận; Unix Epoch là 00:00:00 UTC ngày 1 tháng 1 năm 1970. Nó được sử dụng rộng rãi trong hệ điều hành và định dạng tệp vì là một số nguyên đơn, giúp máy tính dễ dàng lưu trữ và xử lý. Tiêu chuẩn này cho phép các hệ thống khác nhau truyền đạt thời gian chính xác bất kể cài đặt múi giờ địa phương.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Để chuyển đổi Unix sang ngày đọc được: Nhập timestamp vào trường Unix Timestamp và chọn đơn vị là giây hay mili giây. Để chuyển đổi ngày đọc được sang Unix: Chọn ngày và giờ bằng bộ chọn, sau đó chọn múi giờ mong muốn. Dùng nút Now để nhanh chóng lấy timestamp hiện tại. Xem kết quả theo thời gian thực, bao gồm ISO 8601, Giờ địa phương, UTC và thời gian tương đối. Nhấp Copy bên cạnh bất kỳ kết quả nào để lưu vào clipboard.",
- heading3: "Các trường hợp sử dụng phổ biến",
- p3: "Phân tích log để chuyển đổi timestamp khó hiểu trong log máy chủ hoặc mục cơ sở dữ liệu thành ngày có thể đọc được để gỡ lỗi. Phát triển API để xác minh rằng backend của bạn đang gửi giá trị epoch chính xác. Di chuyển dữ liệu để đảm bảo dữ liệu dựa trên thời gian nhất quán khi di chuyển giữa các hệ thống. Lập lịch để tính toán timestamp trong tương lai hoặc quá khứ cho cron job, ngày hết hạn hoặc trình kích hoạt sự kiện.",
- heading4: "Mẹo chuyên nghiệp",
- p4: "Khi làm việc với JavaScript, hãy nhớ rằng Date.now() trả về mili giây, trong khi Unix timestamp chuẩn tính bằng giây — chia cho 1000 để chuyển đổi. Luôn dùng định dạng ISO 8601 cho trao đổi dữ liệu giữa các hệ thống để đảm bảo tương thích tối đa. Hãy lưu ý vấn đề Năm 2038 khi các số nguyên có dấu 32-bit sẽ tràn số; các hệ thống hiện đại dùng số nguyên 64-bit giải quyết vấn đề này trong tương lai gần.",
- },
},
"color-converter": {
name: "Chuyển Đổi Màu Sắc",
@@ -1589,16 +1407,6 @@ export default {
badge7: "Chỉ phía trình duyệt",
badge8: "Ưu tiên quyền riêng tư",
},
- edu: {
- heading1: "Các mô hình màu sắc (HEX/RGB/HSL)",
- heading2: "Cách sử dụng công cụ này",
- heading3: "Các trường hợp sử dụng phổ biến",
- heading4: "Mẹo chuyên nghiệp",
- p1: "
Mô hình màu sắc là các hệ thống toán học để biểu diễn màu sắc. HEX (Thập lục phân) là mã 6 chữ số dùng trong HTML và CSS, đại diện cho các thành phần Đỏ, Xanh lá và Xanh dương. RGB (Đỏ, Xanh lá, Xanh dương) sử dụng giá trị thập phân từ 0 đến 255 cho mỗi kênh, thường dùng trong hình ảnh kỹ thuật số.
HSL (Sắc độ, Độ bão hòa, Độ sáng) trực quan hơn với con người, vì nó mô tả màu sắc theo màu cơ bản (Hue), cường độ (Saturation) và độ sáng (Lightness). Hiểu các mô hình này giúp chọn đúng định dạng cho nhu cầu thiết kế và phát triển, đảm bảo tính nhất quán trên các nền tảng và thiết bị khác nhau.
",
- p2: "
Dùng bộ chọn màu trực quan để chọn màu bằng cách kéo con trỏ trong ô vuông độ bão hòa/độ sáng và thanh trượt sắc độ.
Hoặc nhập giá trị cụ thể vào trường «Nhập thủ công» (hỗ trợ định dạng #hex, rgb hoặc hsl).
Quan sát hộp «Xem trước» để thấy màu đã chọn theo thời gian thực.
Xem các giá trị đã chuyển đổi trong các thẻ HEX, RGB, HSL và HSV bên dưới.
Nhấp vào biểu tượng «Sao chép» trên bất kỳ thẻ nào để lưu định dạng đó vào clipboard.
",
- p3: "
Thiết kế web: Chuyển đổi màu từ công cụ thiết kế (thường RGB/HSL) sang mã HEX để dùng trong stylesheet CSS.
Nhất quán thương hiệu: Đảm bảo màu thương hiệu được thể hiện chính xác trên các định dạng kỹ thuật số và phương tiện khác nhau.
Phát triển UI: Nhanh chóng tạo các biến thể sáng hơn hoặc tối hơn của màu cơ bản bằng cách điều chỉnh giá trị Lightness trong HSL.
Kiểm tra khả năng tiếp cận: Dùng xem trước để kiểm tra xem màu đã chọn có đủ độ tương phản cho văn bản có thể đọc và các phần tử UI không.
",
- p4: "
Dùng HSL khi thiết kế các thành phần UI như nút, vì dễ dàng tạo trạng thái hover bằng cách điều chỉnh giá trị lightness.
Khi làm việc với độ trong suốt trong CSS, ưu tiên rgba() hoặc hsla() để dễ đọc và kiểm soát kênh alpha tốt hơn.
Luôn kiểm tra tỷ lệ tương phản màu sắc để đảm bảo thiết kế của bạn dễ tiếp cận với người dùng có khiếm khuyết thị giác.
",
- },
},
"unit-converter": {
name: "Chuyển Đổi Đơn Vị",
@@ -1616,16 +1424,6 @@ export default {
text0: "Chọn đơn vị để xem công thức chuyển đổi",
text1: "Nhập một số hợp lệ",
},
- edu: {
- heading1: "Tổng quan về hệ thống đo lường",
- p1: "Hệ thống đo lường là tập hợp các đơn vị đo lường và các quy tắc liên kết chúng với nhau. Hai hệ thống phổ biến nhất là Hệ Mét (Hệ Đơn vị Quốc tế hay SI) và Hệ Anh. Hệ Mét dựa trên lũy thừa của mười, khiến nó rất logic và dễ dàng mở rộng. Hệ Anh, chủ yếu dùng ở Hoa Kỳ, sử dụng các đơn vị như inch, feet và pound có nguồn gốc lịch sử. Hiểu sự khác biệt giữa các hệ thống này rất cần thiết cho khoa học, kỹ thuật, thương mại quốc tế và các công việc hàng ngày như nấu ăn hay du lịch.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Chọn danh mục đo lường (vd: Độ dài, Trọng lượng, Nhiệt độ) từ lưới ở trên cùng. Chọn đơn vị muốn chuyển đổi từ menu Từ. Nhập giá trị cần chuyển đổi vào trường nhập liệu. Chọn đơn vị đích trong menu Sang. Giá trị đã chuyển đổi sẽ xuất hiện ngay lập tức cùng với công thức toán học được sử dụng.",
- heading3: "Các trường hợp sử dụng phổ biến",
- p3: "Du lịch để chuyển đổi khoảng cách từ km sang dặm hoặc nhiệt độ từ Celsius sang Fahrenheit. Nấu ăn để dịch công thức giữa đơn vị mét (gam/mililit) và Anh (ounce/cup). Kỹ thuật và khoa học để chuyển đổi chính xác giữa các đơn vị áp suất, năng lượng hoặc tốc độ khác nhau. Lưu trữ kỹ thuật số để hiểu sự khác biệt giữa Megabyte, Gigabyte và Terabyte.",
- heading4: "Mẹo chuyên nghiệp",
- p4: "Dùng nút Đổi để nhanh chóng đảo ngược hướng chuyển đổi giữa các đơn vị đã chọn. Luôn kiểm tra loại đơn vị cụ thể, đặc biệt cho thể tích và trọng lượng, vì tên có thể giống nhau ở các hệ thống khác nhau như gallon Mỹ vs. gallon Anh. Khi thực hiện nhiều lần chuyển đổi liên tiếp, hãy giữ nhiều chữ số thập phân nhất có thể cho đến kết quả cuối cùng để tránh lỗi làm tròn tích lũy.",
- },
},
"yaml-toml-converter": {
name: "Chuyển Đổi YAML/TOML",
@@ -1659,16 +1457,6 @@ export default {
text6: "⚠️ Chuyển đổi TOML thất bại:",
tpl7: "Đang chờ chuyển đổi.",
},
- edu: {
- heading1: "So sánh YAML vs TOML vs JSON",
- p1: "JSON là định dạng được sử dụng rộng rãi nhất để trao đổi dữ liệu nhờ tính đơn giản và được hỗ trợ gốc trong JavaScript. YAML (YAML Ain't Markup Language) là một chuẩn serialization dữ liệu thân thiện với con người, sử dụng thụt lề để biểu diễn cấu trúc, khiến nó phổ biến cho các tệp cấu hình phức tạp. TOML (Tom's Obvious, Minimal Language) được thiết kế để dễ đọc và viết nhờ ngữ nghĩa rõ ràng, và thường được dùng cho cấu hình dự án. Trong khi JSON nghiêm ngặt và gọn nhẹ, YAML và TOML ưu tiên khả năng đọc của con người và dễ chỉnh sửa thủ công.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Dán dữ liệu cấu hình của bạn (JSON, YAML, hoặc TOML) vào ô văn bản nguồn bên trái. Công cụ sẽ tự động phát hiện định dạng nguồn, hoặc bạn có thể chọn thủ công từ menu thả xuống. Nhấp Chỉ xác thực để kiểm tra lỗi cú pháp mà không thực hiện chuyển đổi. Nhấp vào một trong các nút chuyển đổi (→ JSON, → YAML, → TOML) để chuyển đổi dữ liệu của bạn sang định dạng đó. Xem kết quả trong các bảng đầu ra bên phải và nhấp Sao chép để lưu vào clipboard.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Infrastructure as Code để chuyển đổi giữa JSON và YAML khi làm việc với Kubernetes manifest, tệp Docker Compose, hoặc mẫu AWS CloudFormation. Cấu hình dự án để di chuyển thiết lập giữa package.json (JSON) và pyproject.toml hoặc Cargo.toml (TOML). Tạo prototype API để nhanh chóng hình dung cấu trúc dữ liệu phức tạp trông như thế nào ở các định dạng khác nhau. Di chuyển hệ thống cũ để chuyển đổi các tệp cấu hình cũ sang định dạng hiện đại trong khi vẫn đảm bảo tính toàn vẹn dữ liệu.",
- heading4: "Mẹo hay",
- p4: "Sử dụng YAML cho các pipeline CI/CD nơi khả năng đọc của các cấu trúc lồng nhau phức tạp là điều cần thiết để dễ bảo trì. Ưu tiên TOML cho các tệp cấu hình cấp ứng dụng để cung cấp giao diện gọn gàng cho người dùng cuối, những người có thể cần chỉnh sửa thủ công. Khi chuyển đổi từ YAML sang JSON, hãy lưu ý các vấn đề ép kiểu của YAML (nơi NO có thể được hiểu là false) và đảm bảo các kiểu dữ liệu của bạn được giữ nguyên chính xác.",
- },
cheatsheet: {
title: "So sánh định dạng",
h0: "Khác biệt cú pháp",
@@ -1719,16 +1507,6 @@ export default {
text1: "Sao chép",
text2: "Đã sao chép!",
},
- edu: {
- heading1: "htpasswd là gì?",
- p1: "
Tệp htpasswd là một cơ sở dữ liệu dạng flat-file dùng để lưu trữ tên người dùng và mật khẩu đã băm cho xác thực cơ bản trên máy chủ web Apache và Nginx. Đây là cách đơn giản nhưng hiệu quả để bảo vệ các thư mục cụ thể hoặc bảng quản trị trên một website mà không cần một hệ thống xác thực đầy đủ dựa trên cơ sở dữ liệu.
Mỗi dòng trong tệp htpasswd đại diện cho một người dùng và tuân theo định dạng username:hashed_password.
",
- heading2: "Cách sử dụng công cụ này",
- p2: "
Nhập tên người dùng: Gõ tên người dùng bạn muốn dùng để xác thực.
Cung cấp mật khẩu: Nhập một mật khẩu hoặc nhấp Tạo mật khẩu mạnh để tạo một mật khẩu an toàn.
Chọn thuật toán: Chọn Bcrypt (-B) cho bảo mật hiện đại hoặc Apache MD5 (-m) để tương thích với hệ thống cũ.
Tạo: Nhấp Tạo bản ghi để tạo chuỗi đã băm.
Sao chép hoặc Tải xuống: Sao chép dòng kết quả vào clipboard hoặc tải xuống dưới dạng tệp để tải lên máy chủ của bạn.
",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "
Bảng quản trị: Bảo vệ các khu vực nhạy cảm như /admin hoặc /wp-admin với một lớp bảo mật cấp máy chủ bổ sung.
Trang staging: Hạn chế truy cập vào môi trường phát triển hoặc staging để chúng không bị công cụ tìm kiếm lập chỉ mục hoặc công chúng xem được.
Kho lưu trữ riêng tư: Bảo mật các kho Git hoặc SVN cục bộ được phục vụ qua HTTP.
API Gateway: Triển khai xác thực đơn giản cho các microservice nội bộ hoặc API cũ.
",
- heading4: "Mẹo hay",
- p4: "
Luôn dùng Bcrypt: Bcrypt cố tình chậm và sử dụng hệ số cost để chống lại tấn công brute-force. Nó an toàn hơn đáng kể so với các tùy chọn MD5 hoặc SHA1 cũ.
Bảo mật tệp: Đặt tên tệp của bạn là .htpasswd (có dấu chấm đầu) và lưu trữ nó bên ngoài thư mục web root để tránh bị tải xuống.
HTTPS là bắt buộc: Xác thực cơ bản gửi thông tin đăng nhập dưới dạng dễ dàng đảo ngược. Không bao giờ sử dụng nó qua HTTP không mã hóa; luôn đảm bảo trang web của bạn được phục vụ qua HTTPS.
",
- },
},
"mock-data-generator": {
name: "Trình Tạo Dữ Liệu Mẫu",
@@ -1762,16 +1540,6 @@ export default {
text1: "Sao chép",
text2: "Không có hàng để xem trước.",
},
- edu: {
- heading1: "Dữ liệu giả lập là gì?",
- p1: "
Dữ liệu giả lập là thông tin tổng hợp bắt chước dữ liệu thực mà không chứa bất kỳ thông tin nhạy cảm hoặc thông tin cá nhân có thể nhận dạng (PII). Nó rất quan trọng với các nhà phát triển và kiểm thử viên cần tập dữ liệu thực tế để xây dựng và xác thực ứng dụng mà không gây rủi ro vi phạm dữ liệu hay vi phạm quy định quyền riêng tư như GDPR hay CCPA. Bằng cách sử dụng dữ liệu giả lập, bạn có thể mô phỏng nhiều tình huống khác nhau, đảm bảo phần mềm xử lý mọi loại đầu vào đúng cách.
",
- heading2: "Chiến lược kiểm thử",
- p2: "
Kiểm thử hiệu quả đòi hỏi tập dữ liệu đa dạng. Dùng dữ liệu giả lập để điền vào cơ sở dữ liệu phát triển, thực hiện kiểm thử tải với hàng nghìn bản ghi, hoặc xác minh bố cục UI với độ dài chuỗi khác nhau. Đặc biệt hữu ích cho kiểm thử tích hợp khi bạn cần phản hồi có thể dự đoán từ các API bên ngoài. Bằng cách tạo dữ liệu cục bộ, bạn có thể tạo môi trường kiểm thử nhất quán, dễ đặt lại và tái tạo.
Quyền riêng tư là ưu tiên hàng đầu trong phát triển phần mềm hiện đại. Sử dụng dữ liệu sản xuất thực trong môi trường phát triển hoặc staging là rủi ro bảo mật lớn. Các bộ tạo dữ liệu giả lập giải quyết vấn đề này bằng cách tạo ra dữ liệu giả nhưng đúng cấu trúc. Công cụ của chúng tôi chạy hoàn toàn trong trình duyệt, nghĩa là cấu hình và dữ liệu được tạo ra vẫn nằm trong trình duyệt của bạn và không được gửi đến máy chủ của chúng tôi.
",
- heading4: "Mẹo chuyên nghiệp",
- p4: "
Tính nhất quán: Khi tạo nhiều tập dữ liệu liên quan, dùng seed cố định hoặc mẫu để duy trì tính toàn vẹn tham chiếu giữa các bảng.
Trường hợp biên: Bao gồm chuỗi rỗng, tên rất dài và ký tự đặc biệt để kiểm tra tính mạnh mẽ của ứng dụng.
Chuyển đổi định dạng: Dùng xuất SQL để nhanh chóng seed cơ sở dữ liệu và CSV để phân tích bảng tính hoặc nhập hàng loạt.
Tự động hóa: Các mẫu công cụ này sử dụng có thể được tích hợp vào pipeline CI/CD tự động để kiểm thử liên tục.
",
- },
cheatsheet: {
title: "Các loại trường dữ liệu giả lập",
h0: "Các loại có sẵn",
@@ -1870,16 +1638,6 @@ export default {
js: {
tpl0: "aLtErNaTiNg:",
},
- edu: {
- heading1: "Giải thích quy ước đặt tên (camelCase/snake_case/v.v.)",
- heading2: "Cách sử dụng công cụ này",
- heading3: "Trường hợp sử dụng phổ biến",
- heading4: "Mẹo hay",
- p1: "
Quy ước đặt tên là tập hợp các quy tắc để chọn chuỗi ký tự dùng làm định danh biểu thị biến, kiểu dữ liệu, hàm, và các thực thể khác trong mã nguồn và tài liệu. camelCase (vd: myVariable) bắt đầu bằng chữ thường và viết hoa chữ cái đầu của mỗi từ tiếp theo. snake_case (vd: my_variable) dùng dấu gạch dưới để phân cách các từ.
PascalCase (vd: MyVariable) viết hoa chữ cái đầu của mọi từ, trong khi kebab-case (vd: my-variable) dùng dấu gạch nối để phân cách các từ. Các quy ước này không chỉ về mặt thẩm mỹ; chúng rất quan trọng đối với khả năng đọc mã, khả năng bảo trì, và tuân theo các tiêu chuẩn thông dụng của các ngôn ngữ lập trình và framework khác nhau.
",
- p2: "
Gõ hoặc dán văn bản của bạn vào ô \"Văn bản đầu vào\" ở đầu trang.
Công cụ sẽ tự động chuyển đổi dữ liệu nhập của bạn thành hơn chục kiểu chữ khác nhau theo thời gian thực.
Cuộn qua lưới \"Kết quả chuyển đổi\" để tìm kiểu chữ cụ thể bạn cần.
Nhấp vào biểu tượng \"Sao chép\" bên cạnh bất kỳ kết quả nào để lưu vào clipboard.
Dùng nút \"Xóa\" để xóa toàn bộ dữ liệu nhập và bắt đầu chuyển đổi mới.
",
- p3: "
Tái cấu trúc mã: Nhanh chóng chuyển đổi tên biến khi di chuyển mã giữa các ngôn ngữ với tiêu chuẩn khác nhau (vd: camelCase của Java sang snake_case của Python).
Phát triển web: Biến đổi văn bản thành kebab-case cho tên lớp CSS hoặc URL slug để đảm bảo định danh thân thiện SEO và hợp lệ.
Thiết kế cơ sở dữ liệu: Chuyển đổi định danh camelCase cấp ứng dụng thành snake_case cho tên bảng và cột cơ sở dữ liệu.
Tạo nội dung: Dùng Title Case hoặc Sentence case để nhanh chóng định dạng tiêu đề và nội dung văn bản cho bài viết hoặc tài liệu.
",
- p4: "
Hãy nhất quán trong dự án của bạn; ngay cả khi bạn thích một kiểu nào đó, luôn tuân theo quy ước hiện có của codebase bạn đang làm việc.
Dùng tên mô tả có ý nghĩa, thay vì chỉ tuân theo quy ước kiểu chữ (vd: isUserLoggedIn tốt hơn status).
Khi làm việc với API, hãy chuẩn bị chuyển đổi giữa các kiểu chữ, vì hệ thống backend thường dùng snake_case trong khi frontend ưa thích camelCase.
",
- },
},
"code-minifier": {
name: "Nén Mã Nguồn",
@@ -1913,16 +1671,6 @@ export default {
text2: "📋 Sao chép",
tpl3: "Toàn bộ quá trình xử lý diễn ra trong trình duyệt của bạn. Mã của bạn được xử lý cục bộ và không gửi đến máy chủ của chúng tôi.",
},
- edu: {
- heading1: "Rút gọn mã (Minification) là gì?",
- heading2: "Cách sử dụng công cụ này",
- heading3: "Trường hợp sử dụng phổ biến",
- heading4: "Mẹo hay",
- p1: "
Rút gọn mã là quá trình loại bỏ tất cả các ký tự không cần thiết khỏi mã nguồn mà không làm thay đổi chức năng của nó. Điều này bao gồm loại bỏ khoảng trắng, ký tự xuống dòng, comment, và đôi khi rút ngắn tên biến. Mục tiêu là giảm kích thước tệp của mã, từ đó giảm lượng dữ liệu cần truyền qua mạng.
Điều này giúp tăng tốc độ tải trang và cải thiện hiệu năng cho các ứng dụng web. Trong khi rút gọn mã là điều cần thiết cho môi trường production, nó khiến mã gần như không thể đọc và gỡ lỗi được đối với con người. Do đó, nó thường được thực hiện như bước cuối cùng trong quy trình build trước khi triển khai lên máy chủ thực tế.
",
- p2: "
Chọn ngôn ngữ lập trình (JavaScript, CSS, HTML, hoặc JSON) từ các tab ở trên cùng.
Dán mã nguồn của bạn vào ô văn bản \"Mã đầu vào\" bên trái.
Nhấp nút \"Rút gọn mã\" để giảm kích thước tệp cho việc sử dụng production.
Ngoài ra, nhấp \"Làm đẹp mã\" để thêm thụt lề và định dạng giúp dễ đọc hơn.
Xem kết quả trong ô \"Mã đầu ra\" và nhấp \"Sao chép\" hoặc \"Tải xuống\" để lưu mã đã tối ưu của bạn.
",
- p3: "
Triển khai production: Rút gọn các tệp JS và CSS của bạn trước khi tải lên máy chủ web để cải thiện tốc độ trang web và SEO.
Mẫu email: Rút gọn mã HTML email để đảm bảo nó nằm trong giới hạn kích thước của các trình email khác nhau và tải nhanh cho người nhận.
Phản hồi API: Rút gọn dữ liệu JSON trước khi gửi từ máy chủ của bạn để giảm băng thông sử dụng và chi phí egress.
Kiểm toán mã: Dùng công cụ làm đẹp để định dạng mã lộn xộn hoặc đã rút gọn bạn tìm thấy trên mạng để hiểu cách nó hoạt động.
",
- p4: "
Luôn giữ mã nguồn gốc, chưa rút gọn cho phát triển và chỉ dùng phiên bản đã rút gọn cho triển khai production.
Dùng Source Map để kết nối giữa mã production đã rút gọn và mã phát triển dễ đọc, cho phép gỡ lỗi hiệu quả trong trình duyệt.
Kết hợp rút gọn mã với nén Gzip hoặc Brotli trên máy chủ của bạn để giảm tối đa kích thước tệp và thời gian truyền.
",
- },
},
"image-converter": {
name: "Chuyển Đổi Hình Ảnh",
@@ -1969,16 +1717,6 @@ export default {
alert2: "Lỗi khi đọc tệp.",
tpl3: "Xử lý phía trình duyệt bằng Canvas API - không tải lên máy chủ, kết quả tức thì",
},
- edu: {
- heading1: "So sánh định dạng ảnh (PNG/JPEG/WebP)",
- p1: "
Chọn đúng định dạng ảnh là điều quan trọng đối với hiệu năng web và chất lượng hình ảnh. JPEG tốt nhất cho ảnh chụp và hình ảnh phức tạp có nhiều màu sắc, vì nó sử dụng nén mất dữ liệu để đạt kích thước tệp nhỏ. PNG lý tưởng cho ảnh cần độ trong suốt hoặc có cạnh sắc nét và màu đặc (như logo và biểu tượng), vì nó sử dụng nén không mất dữ liệu.
WebP là một định dạng hiện đại cung cấp khả năng nén mất dữ liệu và không mất dữ liệu vượt trội, thường cho kích thước tệp nhỏ hơn đáng kể so với JPEG hoặc PNG trong khi vẫn giữ chất lượng cao.
",
- heading2: "Cách sử dụng công cụ này",
- p2: "
Tải ảnh của bạn lên bằng cách thả vào vùng Tải ảnh lên hoặc nhấp để duyệt tệp.
Chọn định dạng đầu ra mong muốn (PNG, JPG, hoặc WebP) từ tùy chọn Chuyển đổi định dạng.
Nếu bạn đã chọn định dạng mất dữ liệu như JPG hoặc WebP, dùng thanh trượt chất lượng để cân bằng giữa kích thước tệp và độ trung thực hình ảnh.
Tùy chọn, dùng cài đặt Thay đổi kích thước ảnh để phóng to/thu nhỏ ảnh theo phần trăm hoặc kích thước cụ thể.
Nhấp Chuyển đổi & Thay đổi kích thước ảnh rồi Tải xuống để lưu tệp đã tối ưu của bạn.
",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "
Tối ưu hóa web: Chuyển đổi ảnh PNG hoặc JPEG lớn sang WebP để cải thiện tốc độ tải website và Core Web Vitals.
Mạng xã hội: Thay đổi kích thước và nén ảnh để đáp ứng yêu cầu tải lên cụ thể của các nền tảng như Instagram, Twitter, hoặc LinkedIn.
Tiếp thị email: Giảm kích thước tệp ảnh trong chiến dịch email của bạn để đảm bảo tải nhanh cho tất cả người nhận.
Phát triển ứng dụng: Tạo nhiều kích thước của cùng một biểu tượng hoặc tài nguyên cho các mật độ màn hình khác nhau bằng tính năng thay đổi kích thước.
",
- heading4: "Mẹo hay",
- p4: "
Sử dụng WebP bất cứ khi nào có thể cho dự án web, vì nó được hỗ trợ bởi tất cả trình duyệt hiện đại và có tỷ lệ nén-chất lượng tốt nhất.
Khi chuyển đổi sang JPEG, mức chất lượng 70-80% thường mang lại sự cân bằng tốt nhất giữa kích thước tệp và chất lượng hình ảnh cho hầu hết mục đích sử dụng web.
Luôn giữ ảnh gốc độ phân giải cao và chỉ chuyển đổi hoặc thay đổi kích thước các bản sao cho các trường hợp sử dụng cụ thể để tránh mất chất lượng theo thời gian do nén lặp lại.
",
- },
},
"css-gradient": {
name: "Tạo Gradient CSS",
@@ -2018,16 +1756,6 @@ export default {
alert2: "Sao chép CSS vào clipboard thất bại",
tpl3: "Màn hình tải và lớp phủ",
},
- edu: {
- heading1: "CSS Gradient là gì?",
- heading2: "Gradient tuyến tính vs xuyên tâm vs hình nón",
- heading3: "Hỗ trợ trình duyệt và hiệu năng",
- heading4: "Mẹo hay để có Gradient đẹp hơn",
- p1: "
CSS gradient là một tính năng mạnh mẽ cho phép bạn hiển thị các chuyển màu mượt mà giữa hai hoặc nhiều màu được chỉ định. Khác với ảnh nền truyền thống, gradient được tạo ra bởi trình duyệt, nghĩa là chúng có thể mở rộng vô hạn, tiêu tốn ít băng thông hơn, và có thể dễ dàng thao tác bằng mã. Chúng thường được dùng cho nền, nút bấm, và các yếu tố trang trí để tăng chiều sâu và sự thú vị về mặt hình ảnh cho thiết kế web.
",
- p2: "
Có ba loại CSS gradient chính:
Gradient tuyến tính: Màu sắc chuyển dọc theo một đường thẳng. Bạn có thể kiểm soát hướng bằng góc (vd: 45deg) hoặc từ khóa (vd: to right).
Gradient xuyên tâm: Màu sắc lan tỏa ra từ một điểm trung tâm (\"gốc\"). Bạn có thể chỉ định hình dạng (hình tròn hoặc hình elip) và vị trí của tâm.
Gradient hình nón: Màu sắc chuyển quanh một điểm trung tâm, tương tự như biểu đồ tròn hoặc bánh xe màu. Mặc dù ít phổ biến hơn, chúng rất tuyệt để tạo các mẫu và yếu tố UI độc đáo.
",
- p3: "
CSS gradient hiện đại được hỗ trợ rộng rãi trên tất cả các trình duyệt lớn, bao gồm Chrome, Firefox, Safari, và Edge. Vì chúng được render bằng toán học bởi engine của trình duyệt, chúng có hiệu năng cực kỳ tốt so với ảnh độ phân giải cao. Tuy nhiên, đối với các gradient rất phức tạp với hàng chục điểm dừng màu, luôn nên kiểm tra hiệu năng trên các thiết bị cấu hình thấp. Đối với các trình duyệt cũ (như IE9 trở xuống), nên cung cấp một màu đặc dự phòng.
",
- p4: "
Tránh \"vùng chết màu xám\": Khi chuyển giữa hai màu cách xa nhau, điểm giữa đôi khi có thể trông đục hoặc xám. Thêm một điểm dừng màu trung gian rực rỡ có thể giúp gradient trông tươi mới.
Sử dụng chuyển màu tinh tế: Thường thì, gradient đẹp nhất là những gradient bạn khó nhận ra. Sử dụng các màu gần nhau trên bánh xe màu tạo ra vẻ ngoài tinh tế, chuyên nghiệp.
Xếp lớp: Bạn có thể xếp chồng nhiều gradient lên nhau bằng thuộc tính background-image, cho phép tạo hiệu ứng cực kỳ phức tạp và nghệ thuật.
Khả năng tiếp cận: Đảm bảo bất kỳ văn bản nào đặt trên gradient có độ tương phản đủ. Dùng công cụ để kiểm tra tuân thủ WCAG cho tất cả các tổ hợp màu.
",
- },
},
"curl-studio": {
name: "Xưởng cURL",
@@ -2096,16 +1824,6 @@ export default {
text2: "Đã sao chép!",
tpl3: "Log sẽ xuất hiện ở đây sau khi che dấu...",
},
- edu: {
- heading1: "PII là gì?",
- p1: "
Thông tin định danh cá nhân (PII) là bất kỳ dữ liệu nào có thể dùng để nhận diện một cá nhân cụ thể. Điều này bao gồm các định danh trực tiếp như tên, địa chỉ email, và số điện thoại, cũng như các định danh gián tiếp như địa chỉ IP, vị trí vật lý, và số thẻ tín dụng. Trong bối cảnh log máy chủ, PII thường xuất hiện trong tham số yêu cầu, header, hoặc thông báo lỗi.
Bảo vệ PII là một phần quan trọng của bảo mật dữ liệu hiện đại và được yêu cầu bởi nhiều khung pháp lý trên khắp thế giới.
",
- heading2: "Yêu cầu tuân thủ (GDPR/CCPA)",
- p2: "
Các quy định như General Data Protection Regulation (GDPR) tại châu Âu và California Consumer Privacy Act (CCPA) tại Hoa Kỳ áp đặt các quy tắc nghiêm ngặt về cách xử lý dữ liệu cá nhân. Các luật này yêu cầu các tổ chức triển khai privacy by design và giảm thiểu việc thu thập và lưu trữ dữ liệu cá nhân.
Chia sẻ log thô chứa PII với các nhóm hỗ trợ bên thứ ba hoặc nhà phát triển có thể dẫn đến vi phạm tuân thủ. Che dấu hoặc ẩn dữ liệu này trước khi nó rời khỏi môi trường an toàn của bạn là một bước quan trọng để duy trì tuân thủ quy định.
",
- heading3: "Chiến lược che dấu",
- p3: "
Có một số cách để xử lý dữ liệu nhạy cảm trong log:
Che dấu (Redaction): Thay thế giá trị nhạy cảm bằng một placeholder chung như [EMAIL_REDACTED]. Đây là cách tiếp cận phổ biến nhất khi chia sẻ log.
Ẩn danh hóa (Anonymization): Biến đổi dữ liệu không thể đảo ngược để cá nhân không còn có thể được nhận diện.
Giả danh hóa (Pseudonymization): Thay thế định danh bằng một bí danh nhất quán (như một hash) để bạn vẫn có thể liên kết các sự kiện mà không biết danh tính người dùng.
Công cụ của chúng tôi tập trung vào che dấu, sử dụng khớp mẫu để tìm và thay thế các định dạng PII phổ biến ngay lập tức.
",
- heading4: "Mẹo hay",
- p4: "
Sử dụng trường Từ khóa tùy chỉnh để che dấu các định danh nội bộ như API key, session token, hoặc tên dự án độc quyền không được các mẫu chuẩn bao phủ.
Luôn thực hiện che dấu cục bộ (như công cụ này) để đảm bảo dữ liệu nhạy cảm không bao giờ chạm đến máy chủ bên thứ ba trong quá trình xử lý.
Nếu bạn đang liên kết log giữa nhiều hệ thống, hãy cân nhắc sử dụng một salt nhất quán với công cụ hash thay vì che dấu đơn giản để duy trì khả năng truy vết.
Thường xuyên kiểm toán mã ứng dụng của bạn để ngăn PII bị ghi log ngay từ đầu; ghi log tại nguồn là biện pháp phòng thủ tốt nhất.
Xác thực email là tập hợp các kỹ thuật dùng để cung cấp thông tin có thể xác minh về nguồn gốc của một thông điệp email. Bằng cách xác thực danh tính người gửi, các giao thức này giúp máy chủ thư phân biệt giữa thông điệp hợp lệ và thông điệp giả mạo hoặc gian lận (như phishing). Ba trụ cột của xác thực email hiện đại là SPF, DKIM, và DMARC.
Khi một email được nhận, máy chủ nhận thực hiện các kiểm tra này và ghi lại kết quả trong header của email, mà công cụ này phân tích giúp bạn.
",
- p2: "
SPF (Sender Policy Framework): Một cơ chế dựa trên DNS liệt kê các địa chỉ IP và tên miền được ủy quyền gửi email thay mặt cho tên miền của bạn.
DKIM (DomainKeys Identified Mail): Thêm chữ ký số vào email, cho phép người nhận xác minh rằng thông điệp thực sự được gửi bởi chủ sở hữu tên miền và không bị can thiệp trong quá trình truyền.
DMARC (Domain-based Message Authentication, Reporting, and Conformance): Kết nối SPF và DKIM với nhau. Nó cho người nhận biết phải làm gì nếu xác thực thất bại (vd: \"none,\" \"quarantine,\" hoặc \"reject\") và cung cấp cách để người nhận báo cáo lại cho người gửi.
",
- p3: "
Email phishing thường sử dụng \"giả mạo\" để trông như đến từ một nguồn đáng tin cậy. Công cụ phân tích của chúng tôi tìm kiếm các dấu hiệu bất thường phổ biến, chẳng hạn như sự không khớp giữa địa chỉ \"From\" (những gì người dùng thấy) và \"Return-Path\" (nơi thư thực sự đến từ). Chúng tôi cũng trích xuất và phân tích URL trong nội dung email để xác định các liên kết đáng ngờ, chẳng hạn như những liên kết sử dụng Punycode (tên miền giả mạo giống thật) hoặc địa chỉ IP thay vì tên host.
Bằng cách xem xét phần \"Phát hiện\", bạn có thể nhanh chóng nhận diện các tín hiệu này và xác định liệu một email có an toàn để tương tác hay không.
",
- p4: "
Luôn kiểm tra header \"Authentication-Results\" trước tiên; nó cung cấp kết quả chắc chắn của các kiểm tra bảo mật do nhà cung cấp thư của bạn thực hiện.
Sử dụng tùy chọn \"Che dấu PII\" khi chia sẻ báo cáo với người khác để bảo vệ địa chỉ email và thông tin IP nhạy cảm.
Chú ý kỹ đến header \"Reply-To\"; nếu nó khác với địa chỉ \"From\", đó có thể là dấu hiệu của tấn công Business Email Compromise (BEC).
Xem lại \"Chặng định tuyến\" để thấy đường đi của email; một đường đi bất thường dài hoặc phức tạp qua các máy chủ không xác định có thể là dấu hiệu của lạm dụng relay.
",
- },
cheatsheet: {
title: "Tham khảo nhanh xác thực Email",
h0: "Ý nghĩa của các kiểm tra này",
@@ -2491,16 +2199,6 @@ export default {
text9: "Vui lòng dán SQL trước.",
text10: "✓ Đã sao chép",
},
- edu: {
- heading1: "Tại sao nên định dạng SQL?",
- p1: "SQL có thể nhanh chóng trở nên phức tạp và khó đọc, đặc biệt khi xử lý nhiều join, subquery, và điều kiện lồng nhau. Định dạng SQL bao gồm thêm thụt lề nhất quán, ngắt dòng, và viết hoa từ khóa. Điều này giúp logic của câu truy vấn dễ theo dõi hơn nhiều, điều cần thiết cho việc gỡ lỗi, code review, và bảo trì schema cơ sở dữ liệu lớn theo thời gian. Một câu truy vấn được định dạng tốt cũng ít gặp lỗi logic hơn khi chỉnh sửa thủ công.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Dán câu truy vấn SQL thô của bạn vào trình soạn thảo SQL đầu vào bên trái. Chọn phương ngữ cơ sở dữ liệu của bạn (Postgres hoặc MySQL) và kiểu chữ từ khóa ưa thích (CHỮ HOA hoặc chữ thường). Nhấp nút Định dạng để làm đẹp câu truy vấn của bạn với thụt lề và khoảng cách hợp lý. Dùng nút Xác thực để kiểm tra các vấn đề cấu trúc phổ biến như dấu ngoặc kép chưa đóng hoặc dấu ngoặc không cân bằng. Nhấp Sao chép để lưu SQL đã định dạng vào clipboard hoặc Xóa để bắt đầu lại.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Code review để định dạng SQL lộn xộn trước khi gửi pull request. Gỡ lỗi để dọn dẹp các câu truy vấn được tạo bởi ORM nhằm hiểu chính xác những gì đang được thực thi trên cơ sở dữ liệu của bạn. Tài liệu để tạo các ví dụ rõ ràng và dễ đọc cho hướng dẫn kỹ thuật, wiki, hoặc tệp README. Dọn dẹp hệ thống cũ để nhanh chóng tái cấu trúc các script cũ, chưa định dạng thành phong cách hiện đại, dễ đọc.",
- heading4: "Mẹo hay",
- p4: "Sử dụng Common Table Expression (CTE) với mệnh đề WITH để chia nhỏ các câu truy vấn phức tạp thành các phần nhỏ hơn, dễ quản lý hơn. Luôn sử dụng alias mô tả cho bảng và cột để làm rõ ý định của câu truy vấn. Sử dụng nút Rút gọn nếu bạn cần nén SQL của mình thành một dòng duy nhất để dùng trong tệp cấu hình hoặc công cụ dòng lệnh.",
- },
cheatsheet: {
title: "Mẹo định dạng SQL",
h0: "Cải thiện nhanh",
@@ -2569,16 +2267,6 @@ export default {
text15: "Lưu ý: Giá trị được che dấu vì lý do an toàn. So sánh dựa trên heuristic và không bao gồm comment/thứ tự.",
text16: "✓ Đã sao chép",
},
- edu: {
- heading1: "Thực hành tốt nhất cho biến môi trường",
- heading2: "Quản lý bí mật",
- heading3: "Bảo mật .env",
- heading4: "Mẹo hay",
- p1: "
Biến môi trường là một phần cơ bản của phương pháp luận \"Twelve-Factor App\", vốn ủng hộ việc tách biệt nghiêm ngặt cấu hình khỏi mã nguồn. Bằng cách sử dụng biến môi trường, bạn có thể chạy cùng một mã trong các môi trường khác nhau (phát triển, staging, production) chỉ bằng cách thay đổi giá trị cấu hình.
Thực hành tốt nhất bao gồm sử dụng tên mô tả, viết hoa (vd: DATABASE_URL), cung cấp giá trị mặc định cho các cài đặt không quan trọng, và không bao giờ hardcode thông tin nhạy cảm trực tiếp vào source control.
",
- p2: "
Secret là một loại đặc biệt của biến môi trường chứa thông tin nhạy cảm như API key, mật khẩu cơ sở dữ liệu, và chứng chỉ riêng tư. Việc quản lý an toàn các thông tin này là điều quan trọng để ngăn ngừa rò rỉ dữ liệu. Bạn nên sử dụng một dịch vụ quản lý secret chuyên dụng (như AWS Secrets Manager, HashiCorp Vault, hoặc Cloudflare Secrets) cho môi trường production.
Đối với phát triển cục bộ, tệp .env thường được sử dụng, nhưng chúng không bao giờ nên được commit vào kho git của bạn. Luôn thêm *.env vào tệp .gitignore của bạn.
",
- p3: "
Khi chia sẻ tệp .env với đồng đội để gỡ lỗi, có rủi ro cao là vô tình để lộ secret của production. Công cụ quản lý của chúng tôi giúp giảm thiểu rủi ro này bằng tính năng \"Che dấu giá trị nhạy cảm\". Nó sử dụng heuristic để xác định các khóa như SECRET, TOKEN, hoặc PASSWORD và thay thế giá trị của chúng bằng phiên bản đã che dấu (vd: ab...yz (32)).
Điều này cho phép bạn so sánh cấu trúc và các giá trị không nhạy cảm trong tệp môi trường của mình mà không làm lộ các secret thực tế.
",
- p4: "
Sử dụng nút \"Hoán đổi\" để nhanh chóng đảo ngược hướng so sánh giữa Môi trường A và Môi trường B.
Tận dụng ô nhập \"Lọc khóa\" để tập trung vào các nhóm biến cụ thể, chẳng hạn như tất cả các khóa bắt đầu bằng AWS_ hoặc DB_.
Luôn bao gồm một tệp .env.example trong kho của bạn với các giá trị giả để cho các nhà phát triển khác biết những biến nào cần thiết để ứng dụng chạy.
Hãy nhớ rằng biến môi trường thường là chuỗi; nếu ứng dụng của bạn cần một boolean hoặc một số, hãy đảm bảo bạn phân tích giá trị đúng cách trong mã của mình.
",
- },
cheatsheet: {
title: "Ghi chú Dotenv",
h0: "Chiến lược che dấu",
@@ -2638,16 +2326,6 @@ export default {
text7: "Chưa có bản xem trước.",
text8: "✓ Đã sao chép",
},
- edu: {
- heading1: "SVG là gì?",
- p1: "SVG (Scalable Vector Graphics) là một định dạng ảnh vector dựa trên XML dành cho đồ họa hai chiều, có hỗ trợ tương tác và hoạt ảnh. Khác với các định dạng raster như JPEG hoặc PNG, SVG được định nghĩa bằng các đường dẫn toán học, nghĩa là chúng có thể được phóng to đến bất kỳ kích thước nào mà không mất chất lượng. Điều này khiến chúng hoàn hảo cho logo, biểu tượng, và minh họa trên web, nơi chúng vẫn sắc nét trên mọi thứ từ màn hình di động đến màn hình desktop độ phân giải cao.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Dán mã SVG của bạn vào ô văn bản SVG đầu vào bên trái. Nhấp Xem trước để xem đồ họa và trích xuất bảng màu của nó. Dùng nút Tối ưu hóa hoặc Rút gọn để dọn dẹp mã đánh dấu và giảm kích thước tệp. Tùy chọn, thay thế các màu cụ thể bằng cách nhập giá trị mới vào bảng Màu sắc và nhấp Áp dụng. Nhấp Sao chép hoặc Tải xuống để lưu SVG đã làm sạch và tối ưu của bạn.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Quản lý biểu tượng để dọn dẹp SVG xuất từ các công cụ thiết kế như Figma hoặc Illustrator. Tùy chỉnh giao diện để nhanh chóng thay đổi màu sắc của bộ biểu tượng cho khớp với bảng màu thương hiệu của bạn. Bảo mật để làm sạch SVG từ các nguồn không đáng tin cậy nhằm loại bỏ các script tiềm ẩn hoặc tham chiếu bên ngoài. Hiệu năng để rút gọn mã đánh dấu SVG nhằm giảm kích thước đồ họa inline và cải thiện thời gian tải trang.",
- heading4: "Mẹo hay",
- p4: "Sử dụng nút currentColor để chuyển đổi tất cả các fill và stroke rõ ràng thành currentColor, giúp SVG của bạn dễ dàng tạo kiểu qua CSS. Luôn tối ưu hóa SVG của bạn trước khi sử dụng trong production để đảm bảo chúng nhỏ nhất có thể. Khi tạo SVG trong các công cụ thiết kế, sử dụng tính năng Outline Stroke và Simplify Path để giảm độ phức tạp của mã được tạo ra trước khi tối ưu hóa.",
- },
cheatsheet: {
title: "Lưu ý an toàn SVG",
h0: "Làm sạch",
@@ -2801,16 +2479,6 @@ export default {
text28: "Nhấp Quét để tìm secret.",
text29: "✓ Đã sao chép",
},
- edu: {
- heading1: "Rò rỉ Secret là gì?",
- p1: "Rò rỉ secret xảy ra khi thông tin nhạy cảm như API key, mật khẩu, hoặc token riêng tư vô tình được commit vào hệ thống quản lý phiên bản hoặc chia sẻ trên các diễn đàn công khai. Những rò rỉ này có thể dẫn đến truy cập trái phép, rò rỉ dữ liệu, và tổn thất tài chính. Công cụ này giúp xác định các mẫu secret phổ biến cục bộ trong trình duyệt của bạn trước khi bạn chia sẻ hoặc commit mã của mình.",
- heading2: "Cách sử dụng công cụ này",
- p2: "Dán mã, cấu hình, hoặc tệp log của bạn vào ô nhập liệu. Nhấp nút Quét để phân tích văn bản tìm các secret tiềm ẩn. Xem lại các phát hiện và lời khuyên cho từng mục được phát hiện. Dùng nút Sao chép bản đã che dấu để lấy phiên bản văn bản an toàn để chia sẻ với các secret đã được che.",
- heading3: "Trường hợp sử dụng phổ biến",
- p3: "Kiểm tra pre-commit để quét mã của bạn trước khi commit nhằm đảm bảo không có secret nào bị đưa vào. Che dấu log để che các token nhạy cảm trong log trước khi chia sẻ với bộ phận hỗ trợ hoặc đồng đội. Kiểm toán bảo mật để nhanh chóng kiểm toán các tệp cấu hình tìm thông tin xác thực hardcode.",
- heading4: "Mẹo hay",
- p4: "Luôn xoay vòng thông tin xác thực của bạn ngay lập tức nếu bạn phát hiện chúng đã bị rò rỉ. Sử dụng biến môi trường hoặc trình quản lý secret thay vì hardcode secret trong mã nguồn của bạn. Bật Bao gồm các mẫu mức độ nghiêm trọng thấp để quét kỹ lưỡng hơn, nhưng hãy chuẩn bị cho nhiều kết quả dương tính giả hơn.",
- },
cheatsheet: {
title: "Phải làm gì nếu bạn tìm thấy một secret",
h0: "Các bước ngay lập tức",
@@ -2907,16 +2575,6 @@ export default {
text15: "✓ Cấu trúc JWKS hợp lệ (",
text16: "Vui lòng dán một JWK.",
},
- edu: {
- heading1: "JWT là gì?",
- p1: "JSON Web Token (JWT) là một cách gọn nhẹ, an toàn với URL để biểu diễn các claim được truyền giữa hai bên. Một JWT gồm ba phần mã hóa Base64URL ngăn cách bởi dấu chấm: Header (thuật toán và loại), Payload (claim), và Signature. Chữ ký đảm bảo token không bị can thiệp. JWT thường được dùng để xác thực và trao đổi thông tin trong các API web. Các claim chuẩn bao gồm sub (subject), iss (issuer), aud (audience), exp (expiration), nbf (not before), iat (issued at), và jti (JWT ID).",
- heading2: "Thuật toán JWT",
- p2: "HS256/384/512 sử dụng HMAC với SHA-2 và một khóa bí mật dùng chung — đơn giản nhưng cả hai bên phải giữ cùng một khóa. RS256/384/512 sử dụng chữ ký bất đối xứng RSA PKCS#1 v1.5 — lý tưởng cho kiến trúc microservice nơi các dịch vụ chỉ cần khóa công khai. ES256/384/512 sử dụng ECDSA với các đường cong NIST cho chữ ký nhỏ hơn RSA với mức bảo mật tương đương. PS256/384/512 sử dụng RSA-PSS, một biến thể xác suất được ưu tiên hơn RS* trong các hệ thống hiện đại.",
- heading3: "JWK và JWKS",
- p3: "JSON Web Key (JWK) là một cấu trúc JSON đại diện cho một khóa mật mã. JWK Set (JWKS) là một cấu trúc JSON chứa một mảng các JWK dưới thuộc tính keys. Các dịch vụ công bố JWKS của họ tại một URL nổi tiếng (vd: /.well-known/jwks.json), cho phép client lấy khóa công khai để xác minh JWT mà không cần trao đổi khóa ngoài băng thông. Các khóa trong JWKS được xác định bằng kid (Key ID) của chúng, mà header JWT tham chiếu đến.",
- heading4: "Thực hành bảo mật tốt nhất",
- p4: "Luôn xác thực các claim exp, nbf, iss, và aud ở phía máy chủ. Không bao giờ sử dụng thuật toán alg: none trong production — nó loại bỏ toàn bộ bảo vệ chữ ký. Ưu tiên các thuật toán bất đối xứng (RS*, ES*, PS*) hơn HMAC khi nhiều dịch vụ cần xác minh token. Xoay vòng khóa thường xuyên và sử dụng kid để xác định khóa nào được dùng để ký từng token. Lưu trữ khóa riêng tư an toàn — không bao giờ commit chúng vào hệ thống quản lý phiên bản. Sử dụng thời gian hết hạn ngắn và refresh token thay vì JWT tồn tại lâu.",
- },
},
"encoding-workbench": {
name: "Bàn Mã Hóa",
@@ -2980,16 +2638,6 @@ export default {
js: {
noLayers: "Không phát hiện lớp mã hóa nào có thể nhận diện.",
},
- edu: {
- heading1: "Mã hóa (Encoding) so với Hashing là gì?",
- heading2: "Cách sử dụng công cụ này",
- heading3: "Giải thích mã hóa nhiều lớp",
- heading4: "Hướng dẫn thuật toán Hash",
- p1: "
Mã hóa (Encoding) biến đổi dữ liệu thành một biểu diễn khác có thể đảo ngược (giải mã). Các định dạng phổ biến bao gồm Base64 — dùng để truyền dữ liệu nhị phân qua các kênh văn bản — mã hóa URL, mã hóa thực thể HTML, và thập lục phân. Mã hóa không phải là mã hóa bảo mật (encryption); nó không cung cấp tính bảo mật.
Hashing là một phép biến đổi toán học một chiều. Một hàm hash mật mã học nhận bất kỳ đầu vào nào và tạo ra một dấu vân tay có độ dài cố định. Bạn không thể đảo ngược hash để lấy lại đầu vào gốc. Hash được dùng để xác minh tính toàn vẹn tệp, lưu trữ mật khẩu an toàn, và tạo chữ ký số.
",
- p2: "
Tab Mã hóa / Giải mã: Dán văn bản và chọn một thao tác (Base64, URL, HTML, Hex), hoặc nhấp Tự động phát hiện lớp để tự động bóc tách nhiều lớp mã hóa lồng nhau.
Tab Hash: Nhập văn bản hoặc chọn một tệp, chọn thuật toán, và nhấp Băm tất cả. Bật chế độ HMAC để tính hash có khóa với một khóa bí mật dùng chung.
Tab Nhận diện: Dán một hash hoặc chuỗi mã hóa chưa xác định và nhấp Nhận diện để xem các thuật toán khả dĩ kèm mức độ tin cậy.
",
- p3: "
Dữ liệu thực tế thường được mã hóa nhiều lần. Ví dụ, một payload có thể được mã hóa URL, sau đó mã hóa Base64, rồi đặt vào bên trong một chuỗi hex. Tính năng Tự động phát hiện lớp kiểm tra mẫu dữ liệu đầu vào, thử từng cách giải mã theo trình tự, và trực quan hóa mỗi bước dưới dạng một thẻ để bạn có thể thấy chính xác cách dữ liệu đã được bọc.
",
- p4: "
MD5 — Đầu ra 128-bit. Đã bị phá vỡ về mặt mật mã học; chỉ dùng cho tương thích hệ thống cũ hoặc checksum không liên quan đến bảo mật.
SHA-1 — Đầu ra 160-bit. Không khuyến nghị dùng cho bảo mật. Vẫn còn thấy trong các commit Git cũ và chứng chỉ.
SHA-256 — Đầu ra 256-bit. Dùng chung, được sử dụng rộng rãi trong TLS, ký mã, và kiểm tra tính toàn vẹn dữ liệu.
SHA-512 — Đầu ra 512-bit. Biên độ bảo mật cao hơn; được ưu tiên cho các quy trình liên quan đến mật khẩu.
bcrypt — Hàm băm mật khẩu thích ứng với hệ số cost có thể cấu hình. Dùng để lưu trữ mật khẩu; không dùng cho tính toàn vẹn dữ liệu.
",
- },
},
"oauth-debugger": {
name: "Trình Gỡ Lỗi OAuth",
@@ -3045,16 +2693,6 @@ export default {
placeholder7: "https://yourapp.example.com/callback",
placeholder8: "openid profile email",
},
- edu: {
- heading1: "PKCE là gì và tại sao nó quan trọng?",
- p1: "
Proof Key for Code Exchange (PKCE, RFC 7636) ban đầu được thiết kế cho các ứng dụng di động và ứng dụng gốc không thể lưu trữ client secret một cách an toàn. Nó hoạt động bằng cách để client tạo một code_verifier ngẫu nhiên, suy ra một code_challenge từ đó (SHA-256 + base64url), và gửi challenge cùng với yêu cầu ủy quyền. Khi đổi mã ủy quyền lấy token, client gửi code_verifier gốc. Máy chủ ủy quyền xác minh nó khớp với challenge trước đó — chứng minh yêu cầu token đến từ cùng một client đã bắt đầu luồng.
Ngay cả với các client bảo mật (ứng dụng phía máy chủ có client secret), PKCE hiện được OAuth 2.1 khuyến nghị như một biện pháp phòng thủ chống lại tấn công đánh chặn mã ủy quyền.
",
- heading2: "Tại sao luồng Implicit không còn được khuyến nghị?",
- p2: "
Luồng implicit (response_type=token) được thiết kế như một cách rút gọn cho các ứng dụng single-page, trả về access token trực tiếp trong đoạn URL. Điều này tạo ra các vấn đề nghiêm trọng: token trong URL xuất hiện trong lịch sử trình duyệt, log máy chủ, và header referrer, và luồng này dễ bị tấn công token injection. OAuth 2.0 Security Best Current Practice (RFC 9700) và OAuth 2.1 loại bỏ hoàn toàn luồng implicit để ưu tiên Authorization Code + PKCE, mà các SPA có thể sử dụng an toàn mà không cần client secret.
",
- heading3: "Các thay đổi chính trong OAuth 2.1",
- p3: "
Bắt buộc PKCE cho tất cả các luồng Authorization Code, bao gồm cả client bảo mật.
Loại bỏ luồng Implicit — dùng Authorization Code + PKCE thay thế.
Loại bỏ Resource Owner Password Credentials (ROPC) — grant type password không còn được khuyến nghị.
Bắt buộc xoay vòng refresh token cho client công khai — một refresh token mới phải được cấp mỗi lần sử dụng.
Bắt buộc khớp chính xác Redirect URI — không dùng khớp mẫu hay ký tự đại diện.
钓鱼邮件通常使用“伪造”手法,使其看起来像是来自可信来源。我们的分析工具会查找常见的危险信号,例如“From”地址(用户看到的地址)与“Return-Path”(邮件的实际来源)之间的不匹配。我们还会提取并分析邮件正文中的 URL,以识别可疑链接,例如使用 Punycode(仿冒域名)或以 IP 地址代替主机名的链接。
釣魚郵件經常使用「偽造」手法,使郵件看似來自受信任的來源。本分析工具會尋找常見的警訊,例如「From」地址(使用者看到的內容)與「Return-Path」(郵件實際來源)之間的不一致。我們也會擷取並分析郵件內文中的網址,以識別可疑連結,例如使用 Punycode(相似仿冒網域)或以 IP 位址取代主機名稱的連結。
Naming conventions are sets of rules for choosing the character sequence to be used for identifiers which denote variables, types, functions, and other entities in source code and documentation. camelCase (e.g., myVariable) starts with a lowercase letter and capitalizes the first letter of each subsequent word. snake_case (e.g., my_variable) uses underscores to separate words.
PascalCase (e.g., MyVariable) capitalizes the first letter of every word, while kebab-case (e.g., my-variable) uses hyphens to separate words. These conventions are not just about aesthetics; they are critical for code readability, maintainability, and adhering to the idiomatic standards of different programming languages and frameworks.
",
- },
- {
- title: "How to Use This Tool",
- content:
- '
Type or paste your text into the "Input Text" area at the top of the page.
The tool will automatically convert your input into over a dozen different case styles in real-time.
Scroll through the "Conversion Results" grid to find the specific case style you need.
Click the "Copy" icon next to any result to save it to your clipboard.
Use the "Clear" button to remove all input and start a new conversion.
Refactoring Code: Quickly convert variable names when migrating code between languages with different standards (e.g., Java's camelCase to Python's snake_case).
Web Development: Transform text into kebab-case for CSS class names or URL slugs to ensure SEO-friendly and valid identifiers.
Database Design: Convert application-level camelCase identifiers into snake_case for database table and column names.
Content Creation: Use Title Case or Sentence case to quickly format headings and body text for articles or documentation.
",
- },
- {
- title: "Pro Tips",
- content:
- "
Be consistent within your project; even if you prefer one style, always follow the existing convention of the codebase you are working on.
Use descriptive names that convey meaning, rather than just following the case convention (e.g., isUserLoggedIn is better than status).
When working with APIs, be prepared to convert between cases, as backend systems often use snake_case while frontends prefer camelCase.
X.509 is a standard format for public key certificates, which are digital documents that securely bind a public key to an identity (such as a website, organization, or individual). These certificates are the foundation of the Public Key Infrastructure (PKI) used to secure the internet via HTTPS, as well as for signing emails and software.
-
An X.509 certificate contains the public key, the identity of the certificate holder, and the digital signature of the Certificate Authority (CA) that issued the certificate, proving its authenticity.
- `,
- },
- {
- title: "How to Use This Tool",
- content: `
-
-
Paste your certificate: Copy your PEM-encoded certificate (including the BEGIN and END headers) and paste it into the input field.
-
Parse: Click "Parse Certificate" to extract and analyze the data.
-
Review Summary: Check the top cards for the Common Name (CN), Issuer, and validity dates.
-
Inspect Details: Expand the sections below to see the full Subject, Issuer, SANs, and technical extensions.
-
Check Status: Look at the status badge to see if the certificate is currently valid or expired.
SSL/TLS Troubleshooting: Diagnosing why a website is showing a "Not Secure" warning by checking for expiration or hostname mismatches.
-
Security Auditing: Verifying that a certificate was issued by a trusted CA and uses strong signature algorithms (like SHA-256).
-
Development: Inspecting self-signed certificates or CSRs (Certificate Signing Requests) during local development.
-
Infrastructure Management: Checking the Subject Alternative Names (SANs) to ensure all required subdomains are covered by a single certificate.
-
- `,
- },
- {
- title: "Pro Tips",
- content: `
-
-
Check the SANs: Modern browsers rely on the Subject Alternative Name (SAN) extension rather than the Common Name (CN) for hostname verification. Always ensure your domain is listed in the SANs.
-
Verify the Chain: If a certificate is valid but still untrusted, it may be missing intermediate certificates. Check the "Issuer" to identify which intermediate CA you need to include on your server.
-
Fingerprints for Pinning: Use the SHA-256 Fingerprint provided by this tool if you need to implement certificate pinning in mobile applications or high-security APIs.
`;
diff --git a/src/routes/cidr-calculator.js b/src/routes/cidr-calculator.js
index 63f95ba..18cadd7 100644
--- a/src/routes/cidr-calculator.js
+++ b/src/routes/cidr-calculator.js
@@ -11,9 +11,7 @@ import {
infoHint,
} from "../utils/common-ui.js";
import {
- createEducationalSection,
createRelatedToolsSection,
- createVisibleArticle,
} from "../utils/content-ui.js";
import { TOOLS } from "../utils/tool-registry.js";
import {
@@ -75,15 +73,6 @@ function renderCIDRCalculatorPage(lang = DEFAULT_LANGUAGE) {
${toolHeader}
- ${createVisibleArticle({
- title: "Subnet math in the browser, not against a live network",
- paragraphs: [
- `Enter an IPv4 or IPv6 prefix and this planner derives network, broadcast (IPv4), host range, and reverse-DNS labels with integer arithmetic in the page. It does not ping hosts, query WHOIS, or walk a routing table.`,
- `IPv4 still reserves network and broadcast addresses in a subnet, so a /24 has 254 usable hosts. IPv6 assignments are usually /64 on a LAN; compressing zeros is display only and does not change the prefix.`,
- `Use it to size a VPC, check that two CIDRs overlap, or mint a PTR name before you write the zone file. The result is a calculation, not a guarantee that the addresses are free on the wire.`,
- ],
- })}
-
@@ -360,33 +349,6 @@ function renderCIDRCalculatorPage(lang = DEFAULT_LANGUAGE) {
- ${createEducationalSection(
- [
- {
- title: "What is CIDR?",
- content:
- "Classless Inter-Domain Routing (CIDR) is a method for allocating IP addresses and IP routing. It replaced the older system based on classes (A, B, and C) to provide more flexibility and efficiency in address distribution.",
- },
- {
- title: "How to Use This Tool",
- content:
- 'Enter an IP address with a prefix (e.g., 192.168.1.0/24) or use the slider to adjust the prefix length. Click "Run analysis" to see network details, usable host ranges, and binary representations.',
- },
- {
- title: "Common Use Cases",
- content:
- "Planning network subnets for cloud infrastructure (VPCs), troubleshooting routing issues, calculating host capacity for a given prefix, and converting between CIDR and subnet masks.",
- },
- {
- title: "Pro Tips",
- content:
- "Remember that in IPv4, the first and last addresses in a subnet are typically reserved for the network ID and broadcast address. In IPv6, subnets are almost always /64 for standard local networks.",
- },
- ],
- "cidr-calculator",
- currentLang,
- )}
-
${createCheatsheet("cidr-calculator", "Subnet Quick Reference", [
{
heading: "Common Subnets",
diff --git a/src/routes/code-minifier.js b/src/routes/code-minifier.js
index f8070c1..ff68be4 100644
--- a/src/routes/code-minifier.js
+++ b/src/routes/code-minifier.js
@@ -11,7 +11,6 @@ import {
} from "../utils/common-ui.js";
import { respondHTML } from "../utils/respond.js";
import {
- createEducationalSection,
createRelatedToolsSection,
} from "../utils/content-ui.js";
import { TOOLS } from "../utils/tool-registry.js";
@@ -141,33 +140,7 @@ function renderCodeMinifierPage(lang = DEFAULT_LANGUAGE) {
Minification is the process of removing all unnecessary characters from source code without changing its functionality. This includes removing whitespace, newlines, comments, and sometimes shortening variable names. The goal is to reduce the file size of the code, which in turn reduces the amount of data that needs to be transferred over the network.
This leads to faster page load times and improved performance for web applications. While minification is essential for production environments, it makes the code nearly impossible for humans to read and debug. Therefore, it is typically performed as a final step in the build process before deploying to a live server.
",
- },
- {
- title: "How to Use This Tool",
- content:
- '
Select the programming language (JavaScript, CSS, or HTML) from the tabs at the top.
Paste your source code into the "Input Code" text area on the left.
Click the "Minify Code" button to reduce the file size for production use.
Alternatively, click "Beautify Code" to add indentation and formatting for better readability.
View the results in the "Output Code" area and click "Copy" or "Download" to save your optimized code.
Need to format or minify JSON? Use the JSON Formatter tool.
Color models are mathematical systems for representing colors. HEX (Hexadecimal) is a 6-digit code used in HTML and CSS, representing Red, Green, and Blue components. RGB (Red, Green, Blue) uses decimal values from 0 to 255 for each channel, often used in digital imaging.
HSL (Hue, Saturation, Lightness) is more intuitive for humans, as it describes color in terms of its base pigment (Hue), intensity (Saturation), and brightness (Lightness). Understanding these models helps in choosing the right format for your design and development needs, ensuring consistency across different platforms and devices.
",
- },
- {
- title: "How to Use This Tool",
- content:
- '
Use the visual color picker to select a color by dragging the cursor in the saturation/brightness square and the hue slider.
Alternatively, enter a specific value in the "Manual Input" field (supports #hex, rgb, or hsl formats).
Observe the "Preview" box to see the selected color in real-time.
View the converted values in the HEX, RGB, HSL, and HSV cards below.
Click the "Copy" icon on any card to save that specific format to your clipboard.
+
${createRelatedToolsSection(relatedToolsData)}
`;
diff --git a/src/routes/cron-builder.js b/src/routes/cron-builder.js
index 3f57ab7..c4dbd0d 100644
--- a/src/routes/cron-builder.js
+++ b/src/routes/cron-builder.js
@@ -7,11 +7,9 @@ import {
} from "../utils/common-ui.js";
import {
createRelatedToolsSection,
- createVisibleArticle,
} from "../utils/content-ui.js";
import { TOOLS } from "../utils/tool-registry.js";
import {
- DEFAULT_LANGUAGE,
getToolTranslation,
normalizeLanguage,
resolveRequestLanguage,
@@ -48,15 +46,6 @@ export async function handleCronBuilderRoutes(request) {
{ toolId: "cron-builder" },
)}
- ${createVisibleArticle({
- title: "Five-field crontab, explained in this tab",
- paragraphs: [
- `This builder speaks classic Vixie/crontab syntax: minute, hour, day of month, month, day of week. It does not accept a sixth seconds field, Quartz, or systemd OnCalendar=. If your scheduler wants those, this page will not silently translate them.`,
- `The next-run list is computed in the browser from the expression and your current timezone. It is a preview, not a job runner. Nothing is stored and no webhook is registered.`,
- `Day-of-week 0 and 7 are both Sunday. Lists, ranges, and steps (1,15, 1-5, */5) work; named months and days are accepted where crontab does. If the parser cannot read a field, the preview stays empty instead of inventing a schedule.`,
- ],
- })}
-
diff --git a/src/routes/csp-builder.js b/src/routes/csp-builder.js
index d00d2d1..2f270d8 100644
--- a/src/routes/csp-builder.js
+++ b/src/routes/csp-builder.js
@@ -13,7 +13,6 @@ import {
infoHint,
} from "../utils/common-ui.js";
import {
- createEducationalSection,
createRelatedToolsSection,
} from "../utils/content-ui.js";
import { TOOLS } from "../utils/tool-registry.js";
diff --git a/src/routes/css-gradient-generator.js b/src/routes/css-gradient-generator.js
index 4e3180a..196382f 100644
--- a/src/routes/css-gradient-generator.js
+++ b/src/routes/css-gradient-generator.js
@@ -7,7 +7,6 @@
import { createPageTemplate, createToolHeader } from "../utils/common-ui.js";
import {
- createEducationalSection,
createRelatedToolsSection,
} from "../utils/content-ui.js";
import { TOOLS } from "../utils/tool-registry.js";
@@ -183,33 +182,7 @@ function renderCSSGradientPage(lang = DEFAULT_LANGUAGE) {
CSS gradients are a powerful feature that allows you to display smooth transitions between two or more specified colors. Unlike traditional background images, gradients are generated by the browser, which means they are infinitely scalable, consume less bandwidth, and can be easily manipulated with code. They are commonly used for backgrounds, buttons, and decorative elements to add depth and visual interest to web designs.
Linear Gradients: Colors transition along a straight line. You can control the direction using angles (e.g., 45deg) or keywords (e.g., to right).
Radial Gradients: Colors radiate outward from a central point (the "origin"). You can specify the shape (circle or ellipse) and the position of the center.
',
- },
- {
- title: "Browser Support and Performance",
- content:
- "
Modern CSS gradients are widely supported across all major browsers, including Chrome, Firefox, Safari, and Edge. Because they are rendered mathematically by the browser's engine, they are extremely performant compared to high-resolution images. However, for very complex gradients with dozens of color stops, it's always good practice to test performance on lower-end devices. For older browsers (like IE9 and below), it's recommended to provide a solid color fallback.
Avoid "Gray Dead Zones": When transitioning between two distant colors, the midpoint can sometimes look muddy or gray. Adding a vibrant intermediate color stop can keep the gradient looking fresh.
Use Subtle Transitions: Often, the best gradients are the ones you barely notice. Using colors that are close to each other on the color wheel creates a sophisticated, professional look.
Layering: You can stack multiple gradients on top of each other using the background-image property, allowing for incredibly complex and artistic effects.
Accessibility: Ensure that any text placed over a gradient has sufficient contrast. Use tools to check WCAG compliance for all color combinations.
Choosing the right image format is crucial for web performance and visual quality. JPEG is best for photographs and complex images with many colors, as it uses lossy compression to achieve small file sizes. PNG is ideal for images that require transparency or have sharp edges and solid colors (like logos and icons), as it uses lossless compression.
WebP is a modern format that provides superior lossy and lossless compression, often resulting in significantly smaller file sizes than JPEG or PNG while maintaining high quality. Our tool supports all these formats, allowing you to optimize your assets for any platform or device without sacrificing clarity.
",
- },
- {
- title: "How to Use This Tool",
- content:
- '
Upload your image by dropping it into the "Upload Image" zone or clicking to browse your files. PNG, JPG, WebP, GIF and BMP files are accepted; an animated GIF is read as its first frame only.
Select your desired output format (PNG, JPG, or WebP) from the "Convert Format" options.
If you\'ve selected a lossy format like JPG or WebP, use the quality slider to balance file size and visual fidelity.
Optionally, use the "Resize Image" settings to scale your image by percentage or specific dimensions.
Click "Convert & Resize Image" and then "Download" to save your optimized asset.
Web Optimization: Convert large PNG or JPEG images to WebP to improve your website's load speed and Core Web Vitals.
Social Media: Resize and compress photos to meet the specific upload requirements of platforms like Instagram, Twitter, or LinkedIn.
Email Marketing: Reduce the file size of images in your email campaigns to ensure they load quickly for all recipients and don't get flagged as spam.
App Development: Generate multiple sizes of the same icon or asset for different screen densities (e.g., @2x, @3x) using the resizing features.
",
- },
- {
- title: "Pro Tips",
- content:
- "
Use WebP whenever possible for web projects, as it is supported by all modern browsers and offers the best compression-to-quality ratio.
When converting to JPEG, a quality setting of 70-80% usually provides the best balance between file size and visual quality for most web uses.
Always keep your original high-resolution images and only convert or resize copies for specific use cases to avoid losing quality over time through repeated compression.
+
${createRelatedToolsSection(relatedToolsData)}
`;
diff --git a/src/routes/json-formatter.js b/src/routes/json-formatter.js
index f8fc921..19c0db8 100644
--- a/src/routes/json-formatter.js
+++ b/src/routes/json-formatter.js
@@ -16,9 +16,7 @@ import {
getRichEditorScript,
} from "../utils/rich-editor.js";
import {
- createEducationalSection,
createRelatedToolsSection,
- createVisibleArticle,
} from "../utils/content-ui.js";
import { TOOLS } from "../utils/tool-registry.js";
import {
@@ -82,15 +80,6 @@ function renderJSONFormatterPage(lang = "en") {
${toolHeader}
- ${createVisibleArticle({
- title: "Why this JSON formatter does not upload your document",
- paragraphs: [
- `This page calls the browser's JSON.parse and JSON.stringify. There is no "save" action, no paste history, and no shareable link with a sequential id. That is the product: a formatter you can use on an API envelope that still contains session cookies or internal hostnames.`,
- `In November 2025, security researchers showed that long-running online formatters which do store pastes had leaked years of JSON through predictable "recent" URLs. The documents included cloud access keys, JWTs, and internal configs. If a site can show you last week's paste, it had to receive it. This tool never gets that chance because the Worker only serves the HTML and static assets.`,
- `Valid JSON is RFC 8259: double-quoted keys and strings, no trailing commas, no comments, no single quotes. The validator reports the first parse error with a line number. Pretty-print is lossless whitespace; minify is the inverse. Neither step sends a byte of the document off this origin.`,
- ],
- })}
-
JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy for humans to read and write and easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others.
These properties make JSON an ideal data-interchange language for web applications, APIs, and configuration files. It represents data as name/value pairs and ordered lists of values. It has become the de facto standard for data exchange on the web, largely replacing XML due to its smaller footprint and better performance.
",
- },
- {
- title: "How to Use This Tool",
- content:
- '
Paste your raw or messy JSON data into the "Input JSON" editor on the left.
Click the "Format" button to beautify the code with proper indentation and syntax highlighting.
Alternatively, use the "Minify" button to remove all whitespace for production use.
Check the "Status" indicator to ensure your JSON is valid; if there\'s an error, the tool will highlight the exact line.
Click "Copy" to save the formatted result to your clipboard or "Clear" to start over.
Personally Identifiable Information (PII) is any data that can be used to identify a specific individual. This includes direct identifiers like names, email addresses, and phone numbers, as well as indirect identifiers like IP addresses, physical locations, and credit card numbers. In the context of server logs, PII often appears in request parameters, headers, or error messages.
Protecting PII is a critical part of modern data security and is required by various legal frameworks around the world.
Regulations like the General Data Protection Regulation (GDPR) in Europe and the California Consumer Privacy Act (CCPA) in the United States impose strict rules on how personal data is handled. These laws require organizations to implement "privacy by design" and to minimize the collection and storage of personal data.
Sharing raw logs containing PII with third-party support teams or developers can lead to compliance violations. Masking or redacting this data before it leaves your secure environment is a key step in maintaining regulatory compliance.
There are several ways to handle sensitive data in logs:
Redaction: Replacing the sensitive value with a generic placeholder like [EMAIL_REDACTED]. This is the most common approach for sharing logs.
Anonymization: Irreversibly transforming data so the individual can no longer be identified.
Pseudonymization: Replacing identifiers with a consistent alias (like a hash) so you can still correlate events without knowing the user's identity.
Our tool focuses on redaction, using pattern matching to find and replace common PII formats instantly.
",
- },
- {
- title: "Pro Tips",
- content:
- '
Use the "Custom Keywords" field to redact internal identifiers like API keys, session tokens, or proprietary project names that aren\'t covered by standard patterns.
Always perform masking locally (as this tool does) to ensure sensitive data never touches a third-party server during the scrubbing process.
If you are correlating logs across multiple systems, consider using a consistent "salt" with a hashing tool instead of simple redaction to maintain traceability.
Regularly audit your application code to prevent PII from being logged in the first place; "log at the source" is the best defense.
Mock data is synthetic information that mimics real-world data without containing any sensitive or personally identifiable information (PII). It is essential for developers and testers who need realistic datasets to build and validate applications without risking data breaches or violating privacy regulations like GDPR or CCPA. By using mock data, you can simulate various scenarios, from standard user profiles to edge cases, ensuring your software handles all types of input gracefully.
Effective testing requires diverse datasets. Use mock data to seed your development databases, perform load testing with thousands of records, or verify UI layouts with varying string lengths. It's particularly useful for integration testing where you need predictable responses from external APIs. By generating data locally, you can create consistent test environments that are easy to reset and reproduce, leading to more reliable and faster development cycles.
Privacy is a top priority in modern software development. Using real production data in development or staging environments is a major security risk. Mock data generators solve this by producing "fake" but structurally correct data. Our tool runs entirely in your browser, meaning your configuration and the generated data stay in your browser and are not sent to our servers. This "Privacy-First" approach ensures that even the process of creating mock data is secure and compliant with the strictest security standards.
',
- },
- {
- title: "Pro Tips",
- content:
- "
Consistency: When generating multiple related datasets, use fixed seeds or patterns to maintain referential integrity between tables.
Edge Cases: Don't just generate \"happy path\" data. Include empty strings, very long names, and special characters to test your application's robustness.
Format Switching: Use the SQL export for quick database seeding and CSV for spreadsheet analysis or bulk imports.
Automation: While this tool is manual, the patterns it uses can be integrated into your automated CI/CD pipelines for continuous testing.