Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5968447
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T20:05:29+00:00 2026-05-22T20:05:29+00:00

I have more of a ‘problem solving’ question than a syntax related problem. Briefly,

  • 0

I have more of a ‘problem solving’ question than a syntax related problem.

Briefly, I’m creating a program that will read a text file full of words (that may feasibly be a list of passwords), one word per line – I’ll be using ReadLn for that bit in a loop. For every word it finds, I want it to add “an amount” of obfuscation in line with how users these days will use ‘3’ instead of ‘E’ in their passwords, or ‘1’ instead of ‘I’. I work in the IT security field and password breaking is often part of it and that’s what the program is for.

I have managed to create the program so far that it generates a LEET table full of many different values for each letter of the alphabet and stacks them in a StringGrid that I can access as part of the process (and it is also outputted visually to a table).

type
TLetters = 'A'..'Z';
    TLeet = array[TLetters] of TStringList;

var
  SourceFileName, str : string;
  StartIndexFile : TextFile;

  i    : TLetters;
  leet : TLeet;
  s    : string;
  n, o, ColumnSize    : integer;           

begin

for i in TLetters do
  leet[ i ] := TStringList.Create;   

// The next sequence of loops populates the string grid by counting the number of     characters for each letter of the alphabet and then inserting them down, column by column and row by row...

//Letter A:

s := '4 @ /-\ /\ ^ aye ∂ ci λ Z';
ColumnSize := wordcount(s,[' ']);
o := 0;
  for n := 0 to ColumnSize do
    leet['A'].Add(ExtractWord(n,s,[' ']));
      for o := 0 to ColumnSize do
        StringGrid1.Cells[1,o] := Leet['A'][o];

// And so on for B - Z

// ... then an OpenDialog that opens the source text file to read. Got that sorted

//  A load of file opening stuff and then the obsfucation
        repeat
           Readln(StartIndexFile, Str);
           LblProgress.Caption := ('Parsing Index File...please wait');
             OBSFUCATE THE WORDS HERE TO SOME EXTENT
             // but now I have hit a barrier....
       until(EOF(StartIndexFile));       

My problem is this : given the word ‘Edward’, for example, how do I decide to what level I should obfuscate it? Just the first letter ‘E’ to be replaced with a ‘3’, and nothing more perhaps? Or the first two letters ‘E’ and ‘d’ to be replaced with ALL the values in the LEET table for both of the letters E and d (meaning dozens of new words would be generated from ‘Edward’, and so on), or all the values for ‘E’ but nothing else…the list goes on. Potentially, for every word, I could create thousands of additional one’s! A 100Gb source file would soon become terabytes!

In other words, I need to set “a level” for which the program will function, that the user can decide. But I’m not sure how to structure that level?

So I’m not sure how to make it work? I didn’t really think it through enough before I started. My initial thoughts were “It would be cool to have a program that would take an index of words from a computer, and then generate variations of every word to account for people who obfuscate characters.” but having come to code it, I’ve realised it’s a bigger job than I thought and I am now stuck at the section for actually ‘LEETing my input file’!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T20:05:29+00:00Added an answer on May 22, 2026 at 8:05 pm

    You could use a level (0-10) as input.
    0: replace nothing
    10: replace all letters with LEET letters.

    Depending on the length of the word, you calculate how many letters to replace and just replace random letters in the word, so that you not always replace the first letter for level 1 etc.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have follow problem: in my table into View I have more than 50
I am having difficulties with pages that have more than one <audio> when I
I have more of a what-would-you-do question than an actual coding question. It relates
i have more than 100 coordinates (Latitude and Longitude), for that i want to
I have more than one OpenID as I have tried out numerous. As people
Is it good practice to have more than one try{} catch{} statement per method?
Do you think it may be OK for a person to have more than
Is there a way in Python, to have more than one constructor or more
Both are mathematical values, however the float does have more precision. Is that the
Is is that I'm a newbie learning Ruby, or does it really have more

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.