<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: laofudev</title>
    <description>The latest articles on DEV Community by laofudev (@laofudev).</description>
    <link>https://dev.to/laofudev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4216299%2F9762d773-0925-4775-b8d5-c6b813b97119.png</url>
      <title>DEV Community: laofudev</title>
      <link>https://dev.to/laofudev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laofudev"/>
    <language>en</language>
    <item>
      <title>TOTP 2FA Codes Explained — How They Work and Why Offline Matters</title>
      <dc:creator>laofudev</dc:creator>
      <pubDate>Fri, 30 Oct 2026 04:20:51 +0000</pubDate>
      <link>https://dev.to/laofudev/totp-2fa-codes-explained-how-they-work-and-why-offline-matters-4imc</link>
      <guid>https://dev.to/laofudev/totp-2fa-codes-explained-how-they-work-and-why-offline-matters-4imc</guid>
      <description>&lt;p&gt;Two-factor authentication is the default answer to "what if my password leaks?" The six-digit codes that rotate every thirty seconds look simple, but the algorithm behind them is one of the most widely deployed pieces of cryptography on the internet. Understanding how TOTP works takes five minutes and tells you exactly what to protect — and what you can safely compute offline.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Also published on the &lt;a href="https://minitool.io/blog/totp-2fa-codes-explained/" rel="noopener noreferrer"&gt;Minitool blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What TOTP Actually Is
&lt;/h2&gt;

&lt;p&gt;TOTP is Time-based One-Time Password, defined in RFC 6238. It extends the older HMAC-based OTP (RFC 4226) by adding a clock. The idea: your authenticator and the service you're logging into share a secret key. To produce a code, both combine that secret with the current time chopped into 30-second windows, and run HMAC-SHA1 over it. If the two clocks roughly agree, they derive the same six digits.&lt;/p&gt;

&lt;p&gt;No network connection is needed to generate a code. Your phone, a hardware key, or a web page all compute the same math independently. The code proves possession of the secret, not connectivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trust Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Here is the catch with most online "2FA code generators": to produce your code, the site needs your secret key. Typing a TOTP secret into a random web tool means that server — or anything compromised along the path — can now generate your codes forever. Fine for a throwaway test account. Never for email or banking.&lt;/p&gt;

&lt;p&gt;This is why an offline generator matters. The &lt;a href="https://minitool.io/tools/totp-generator" rel="noopener noreferrer"&gt;TOTP Generator&lt;/a&gt; runs the standard RFC 6238 algorithm entirely in the browser with plain JavaScript. The secret is combined with the time window locally, the HMAC is computed locally, the code is rendered locally. View source and audit the whole thing. Your secret never leaves the device, which makes it suitable for staging accounts, API sandboxes, shared demo logins, and all the automation test users that don't deserve a slot in your phone's authenticator.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Copy the TOTP secret (the Base32 string from the QR setup screen) for the disposable account.&lt;/li&gt;
&lt;li&gt;Open the &lt;a href="https://minitool.io/tools/totp-generator" rel="noopener noreferrer"&gt;TOTP Generator&lt;/a&gt; and paste it in.&lt;/li&gt;
&lt;li&gt;Read the current six-digit code and its countdown, enter it in the service, done.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because the implementation follows the RFC exactly, the codes match what Google Authenticator or any other standard app produces for the same secret and time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting the Rest of Authentication in Order
&lt;/h2&gt;

&lt;p&gt;A second factor only helps if the first factor isn't trivially guessable. If you're auditing your own habits, run your current passwords through the &lt;a href="https://minitool.io/tools/password-strength" rel="noopener noreferrer"&gt;Password Strength Checker&lt;/a&gt; — it estimates crack time offline. For anything new, use the &lt;a href="https://minitool.io/tools/password-generator" rel="noopener noreferrer"&gt;Password Generator&lt;/a&gt; and store the result in a reputable password manager.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Takeaway
&lt;/h2&gt;

&lt;p&gt;TOTP is elegant precisely because it is self-contained: a shared secret plus a clock produces a proof of possession with no round trips. That same self-containment is your best privacy guarantee — but only if the generator you use keeps the secret local. Run it in the browser, audit the source, and reserve your phone's authenticator for the accounts that truly matter.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Minitool runs entirely in your browser — no signup, no uploads, no tracking. 540+ free tools at &lt;a href="https://minitool.io/" rel="noopener noreferrer"&gt;minitool.io&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>2fa</category>
      <category>webdev</category>
      <category>privacy</category>
    </item>
    <item>
      <title>I Ship 10 Free Browser Tools a Day. Here Are 12 I Actually Use.</title>
      <dc:creator>laofudev</dc:creator>
      <pubDate>Fri, 30 Oct 2026 03:15:51 +0000</pubDate>
      <link>https://dev.to/laofudev/i-ship-10-free-browser-tools-a-day-here-are-12-i-actually-use-k2a</link>
      <guid>https://dev.to/laofudev/i-ship-10-free-browser-tools-a-day-here-are-12-i-actually-use-k2a</guid>
      <description>&lt;p&gt;Eight weeks ago I started a strange routine: every day, ship 10 new free tools to a single website. No signup walls, no ads, no server-side anything. Just HTML, CSS, and JavaScript that runs entirely in the browser.&lt;/p&gt;

&lt;p&gt;Today the catalog passed 546 tools. The pace is one batch per day, every day, and I have no plans to stop.&lt;/p&gt;

&lt;p&gt;Before the catalog drowns in its own size, I want to point at the ones I actually open — the tools that survived daily use instead of just shipping.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rules everything follows
&lt;/h2&gt;

&lt;p&gt;Every tool on the site obeys the same constraints, which turned out to be a feature rather than a limitation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero backend.&lt;/strong&gt; Your data never leaves your device. There's no server to breach, no analytics on your input.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant load.&lt;/strong&gt; No frameworks, no build step. The heaviest tool on the site is 170 KB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works offline&lt;/strong&gt; once the page loads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No dark patterns.&lt;/strong&gt; No cookie banners, no "premium" tier, no newsletter modal.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The 12 I keep using
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/totp-generator" rel="noopener noreferrer"&gt;TOTP Generator&lt;/a&gt;&lt;/strong&gt; — Time-based 2FA codes in the browser, standard RFC 6238. I use it for test accounts where I don't want to touch my phone. Same math as Google Authenticator, entirely client-side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/hex-viewer" rel="noopener noreferrer"&gt;Hex Viewer&lt;/a&gt;&lt;/strong&gt; — Drag any file in, get offsets, hex bytes, and the ASCII column, plus a per-byte inspector. 256 KB cap, which is exactly enough for "what is this header, actually."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/jwt-signature-verifier" rel="noopener noreferrer"&gt;JWT Signature Verifier&lt;/a&gt;&lt;/strong&gt; — Paste a token, verify HS/RS/ES signatures offline with Web Crypto, and check &lt;code&gt;exp&lt;/code&gt;/&lt;code&gt;nbf&lt;/code&gt;/&lt;code&gt;iat&lt;/code&gt; claims. Debugging auth without sending tokens to a random website is the whole point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/json-to-kotlin" rel="noopener noreferrer"&gt;JSON to Kotlin&lt;/a&gt;&lt;/strong&gt; — Paste a JSON response, get data classes with inferred types, nullables, and deduplicated nested classes. Saves me maybe ten minutes per API integration, which adds up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/markdown-table-to-csv" rel="noopener noreferrer"&gt;Markdown Table to CSV&lt;/a&gt;&lt;/strong&gt; — Because documentation tables should not require a text editor macro. Handles escaped pipes and alignment row stripping.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/css-grid-generator" rel="noopener noreferrer"&gt;CSS Grid Generator&lt;/a&gt;&lt;/strong&gt; — Edit a grid template visually, watch the live preview, copy the CSS and HTML. I stopped hand-counting &lt;code&gt;grid-template-columns&lt;/code&gt; fractions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/tap-tempo" rel="noopener noreferrer"&gt;Tap Tempo&lt;/a&gt;&lt;/strong&gt; — Tap any key to get BPM with median outlier filtering. Niche? Extremely. The one time you need it, nothing else works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/wordle-solver" rel="noopener noreferrer"&gt;Wordle Solver&lt;/a&gt;&lt;/strong&gt; — Filter a 6,012-word list by green/yellow/gray feedback. Yes, it handles double letters correctly — that was a whole afternoon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/enigma-simulator" rel="noopener noreferrer"&gt;Enigma Simulator&lt;/a&gt;&lt;/strong&gt; — A working German Enigma I in JavaScript: rotors I–V, reflectors, plugboard. The classic test vector &lt;code&gt;AAAAA → BDZGO&lt;/code&gt; passes. Educational and weirdly fun to break codes with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/running-pace-calculator" rel="noopener noreferrer"&gt;Running Pace Calculator&lt;/a&gt;&lt;/strong&gt; — Pace, speed, and Riegel-based race predictions. It told me my 10K goal was unrealistic. It was right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/ratio-calculator" rel="noopener noreferrer"&gt;Ratio Calculator&lt;/a&gt;&lt;/strong&gt; — The "solve for the missing value" proportions calculator. Aspect ratios, recipe scaling, mixing, whatever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://minitool.io/tools/dca-calculator" rel="noopener noreferrer"&gt;DCA Calculator&lt;/a&gt;&lt;/strong&gt; — Dollar-cost averaging projection versus lump sum, weekly/monthly/yearly. The comparison chart is the honest part most investing sites skip.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the factory works
&lt;/h2&gt;

&lt;p&gt;People keep asking whether the tools are generated by AI. Here's the honest answer: yes, mostly — but not in the fire-and-forget way.&lt;/p&gt;

&lt;p&gt;Each batch goes through a fixed pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dedup check&lt;/strong&gt; against the live catalog (plus a fresh crawl of the site) — no slug collisions, ever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Known-answer tests.&lt;/strong&gt; Every tool ships with test vectors checked against independent reference implementations. The Enigma simulator was validated against published vectors. The crypto tools cross-checked against &lt;code&gt;node:crypto&lt;/code&gt;. The finance tools against plain Python.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A validator&lt;/strong&gt; that checks packaging, metadata lengths, zero external dependencies, and no outbound links.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A headless-Chrome smoke test&lt;/strong&gt; that loads each tool, clicks the sample button, and fails on any console error.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This catches real bugs constantly — just this week: a JSONPath tokenizer choking on bare &lt;code&gt;&amp;lt;&lt;/code&gt; operators, a Sudoku solver that would hang forever on contradictory grids, and a CSV deduplicator that mangled RFC 4180 quoting. Shipping fast and shipping correct are not the same thing; the gates are what let me do both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why browser-only matters more than it sounds
&lt;/h2&gt;

&lt;p&gt;The web got weird about privacy. Half the "free tools" you find upload your input to a server "for processing" — your JSON, your JWT, your file contents. For a lot of tasks there's no reason. JavaScript is fast enough for regex testing, AES-256-GCM, Boggle solving, all of it.&lt;/p&gt;

&lt;p&gt;Every tool on the site is also trivially inspectable: view source is the whole program. If you don't trust the tool, you can read exactly what it does with your data, which is: nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The catalog
&lt;/h2&gt;

&lt;p&gt;If any of the above sounded useful, the full list is at &lt;a href="https://minitool.io/" rel="noopener noreferrer"&gt;minitool.io&lt;/a&gt; — 546 tools across text, developer utilities, and calculators, with 10 more landing every day.&lt;/p&gt;

&lt;p&gt;And if there's a tool you keep needing that doesn't exist yet: tell me. Odds are it ships tomorrow morning.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>tooling</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
