<?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: Preston P</title>
    <description>The latest articles on DEV Community by Preston P (@cyber_preston).</description>
    <link>https://dev.to/cyber_preston</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%2F4018570%2F48d061af-73d7-41d9-ab47-a8a93530fee5.png</url>
      <title>DEV Community: Preston P</title>
      <link>https://dev.to/cyber_preston</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cyber_preston"/>
    <language>en</language>
    <item>
      <title>Password Checker</title>
      <dc:creator>Preston P</dc:creator>
      <pubDate>Wed, 15 Jul 2026 21:50:43 +0000</pubDate>
      <link>https://dev.to/cyber_preston/password-checker-547f</link>
      <guid>https://dev.to/cyber_preston/password-checker-547f</guid>
      <description>&lt;h1&gt;
  
  
  Building a Password Checker: Strength + Breach Detection in Python
&lt;/h1&gt;

&lt;p&gt;I recently built my second cybersecurity tool — a password checker that does two things: analyzes password strength AND checks if it's been leaked in a data breach. Here's how I built it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Inspiration
&lt;/h2&gt;

&lt;p&gt;After building my first tool (a multi-threaded port scanner), I wanted to tackle something directly related to everyday security. Passwords are everywhere, and most people don't know if their passwords are strong or if they've been exposed in a breach.&lt;/p&gt;

&lt;p&gt;I wanted to build a tool that would answer two questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Is this password strong?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Has this password been leaked?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔐 1. Strength Analysis
&lt;/h3&gt;

&lt;p&gt;The tool checks five criteria and gives a score from 0-6:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criteria&lt;/th&gt;
&lt;th&gt;Points&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Length (12+ characters)&lt;/td&gt;
&lt;td&gt;+2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Length (8-11 characters)&lt;/td&gt;
&lt;td&gt;+1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uppercase letters&lt;/td&gt;
&lt;td&gt;+1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lowercase letters&lt;/td&gt;
&lt;td&gt;+1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numbers&lt;/td&gt;
&lt;td&gt;+1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Symbols (!@#$%^&amp;amp;*)&lt;/td&gt;
&lt;td&gt;+1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Score Interpretation:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Rating&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;5-6&lt;/td&gt;
&lt;td&gt;🟢 GREAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;🟢 GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;🟡 DECENT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0-2&lt;/td&gt;
&lt;td&gt;🔴 WEAK&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🛡️ 2. Breach Detection
&lt;/h3&gt;

&lt;p&gt;The tool checks the HaveIBeenPwned API to see if your password appears in any known data breaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it stays secure:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your password is never sent over the internet&lt;/li&gt;
&lt;li&gt;Only the first 5 characters of the SHA-1 hash are sent&lt;/li&gt;
&lt;li&gt;This is called &lt;strong&gt;k-anonymity&lt;/strong&gt; — the API never sees your full password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Building this password checker taught me a lot about:&lt;/p&gt;

&lt;p&gt;Working with APIs&lt;/p&gt;

&lt;p&gt;Cryptographic hashing&lt;/p&gt;

&lt;p&gt;Privacy-first design&lt;/p&gt;

&lt;p&gt;Creating useful, user-friendly tools&lt;/p&gt;

&lt;p&gt;If you're learning cybersecurity or Python, I highly recommend building tools like this. You learn far more than you would from following tutorials alone.&lt;/p&gt;

&lt;p&gt;This is my second cybersecurity project. If I can build it, so can you. 🚀&lt;/p&gt;

</description>
      <category>python</category>
      <category>cybersecurity</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Port scanner Project</title>
      <dc:creator>Preston P</dc:creator>
      <pubDate>Thu, 09 Jul 2026 04:26:20 +0000</pubDate>
      <link>https://dev.to/cyber_preston/port-scanner-project-m38</link>
      <guid>https://dev.to/cyber_preston/port-scanner-project-m38</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Building My First Cybersecurity Tool:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A Multi-Threaded Port Scanner in Python&lt;/p&gt;

&lt;p&gt;A few weeks ago, I didn't know what a port was. Today, I built a tool that can scan 1,000 ports in under 10 seconds. Here's how I did it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The Backstory&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm a high school student interested in cybersecurity, and I wanted to build something real. Not just follow a tutorial, but actually create a tool from scratch.&lt;/p&gt;

&lt;p&gt;I decided to build a port scanner because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's a fundamental cybersecurity tool&lt;/li&gt;
&lt;li&gt;It would teach me networking basics&lt;/li&gt;
&lt;li&gt;I could use what I learned in Python class (AP CSP)&lt;/li&gt;
&lt;li&gt;I wanted something to put on my GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what I built:&lt;/p&gt;




&lt;p&gt;** What Is a Port Scanner?**&lt;/p&gt;

&lt;p&gt;Think of a computer like a huge apartment building with 1,000 numbered doors (ports). Each door leads to a different service:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;Websites (HTTP)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;443&lt;/td&gt;
&lt;td&gt;Secure websites (HTTPS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;Remote access (SSH)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3306&lt;/td&gt;
&lt;td&gt;Databases (MySQL)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A port scanner "knocks" on each door to see which ones are open. If a door is open, there might be a service running that could be a security risk (or just something useful!).&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Building this port scanner taught me more than any textbook could. If you're interested in cybersecurity, I highly recommend building your own tools — it's the best way to understand how things actually work.&lt;/p&gt;

&lt;p&gt;Thanks for reading! Feel free to ask questions or suggest improvements.&lt;/p&gt;

</description>
      <category>python</category>
      <category>cybersecurity</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
