# Functions
CheckAreArraysEqual checks if two arrays are equal by comparing the length of the arrays and the values of the elements in the arrays.
CheckAreMapsEqual checks if two maps are equal by comparing the length of the maps and the values of the keys in the maps.
CheckASCIIString checks to see if a string only contains ascii characters
Args:
str (string): Input string to check
Returns:
(bool): If the string only contained ASCII characters.
CheckHexString is used to identify plaintext in the $HEX[...] format
Args:
s (str): The string to be evaluated
Returns:
(bool): Returns true if it matches and false if it did not.
CombineMaps combines any number of maps into a single map combining values for common keys and returning a new map
Args: maps ([]map[string]int): The maps to combine
Returns: map[string]int: A new map combining the values of the input maps.
ConvertMultiByteCharToIteratingRule converts non-ascii characters to a hashcat valid format for rule.CharToIteratingRule functions
Args:
index (int): Index to start the iteration str (string): Input string to transform
Returns:
returnStr (string): Converted string.
ConvertMultiByteCharToRule converts non-ascii characters to a hashcat valid format for rule.CharToRule functions
Args:
str (string): Input string to transform
Returns:
returnStr (string): Converted string.
GenerateNGrams generates n-grams from a string of text and returns a slice of n-grams
Args: text (string): The text to generate n-grams from n (int): The number of words in each n-gram
Returns: []string: A slice of n-grams.
GeneratePassphrase generates a passphrase from a string of text and returns a slice of passphrases
Args: text (string): The text to generate passphrases from n (int): The number of words in the passphrase
Returns: []string: A slice of passphrases.
GetFilesInDirectory returns a slice of files in a directory by reading the directory and appending the files to a slice if they are not directories
Args: dir (string): The directory to read
Returns: []string: A slice of files in the directory.
GetMemoryUsage returns the current memory usage in megabytes.
IncrementIteratingRuleCall increments the last character of a string for rules.CharToIteratingRules functions
For example, "i4" will be incremented to "i5", "iA" will be incremented to "IB"
Args:
s (string): Input string to increment
Returns:
output (string): Incremented string.
IsFileSystemDirectory checks to see if a string is a valid file system directory by checking if the path exists and if it is a directory
Args:
path (string): The path to check
Returns:
bool: True if the path is a directory, false otherwise.
IsValidFile checks if a file exists and is not a directory by checking if the file exists
Args: path (string): The path to the file
Returns: bool: True if the file is valid, false otherwise.
IsValidURL checks if a string is a valid URL by parsing the string
Args: str (string): The URL to check
Returns: bool: True if the URL is valid, false otherwise.
LoadStdinToMap reads the contents of stdin and returns a map[string]int where the key is the line and the value is the frequency of the line in the input
Args:
scanner (models.Scanner): The scanner to read from stdin
Returns:
map[string]int: A map of lines from stdin error: An error if one occurred.
ProcessURL reads the contents of a URL and sends each sentence to the channel
Args:
url (string): The URL to read ch (chan<- string): The channel to send the sentences to wg (*sync.WaitGroup): The WaitGroup to signal when done parsingMode (int): Change parsing mode for URL input.
ProcessURLFile reads the contents of a file containing URLs and sends each URL to the channel
Args: filePath (string): The path to the file containing URLs ch (chan<- string): The channel to send the URLs to wg (*sync.WaitGroup): The WaitGroup to signal when done parsingMode (int): Change parsing mode for URL input.
ReadFilesToMap reads the contents of the multiple files and returns a map of words
Args:
fs (FileSystem): The filesystem to read the files from (used for testing) filenames ([]string): The names of the files to read
Returns:
(map[string]int): A map of words from the files.
ReadJSONToArray reads the contents of a transformation template file and returns a slice of template structs.
ReadURLsToMap reads the contents of the multiple URLs and returns a map of words from the URLs.
ReplaceAllSubstring replaces all instances of a substring in a string with a new substring if the substring is found in the original string.
ReplaceSubstring replaces all instances of a substring in a string with a new substring if the substring is found in the original string.
ReverseString will return a string in reverse
Args:
str (string): Input string to transform
Returns:
(string): Transformed string.
SplitBySeparatorString splits a string by a separator string and returns a slice with the separator string included
Args:
s (string): The string to split sep (string): The separator string
Returns:
[]string: A slice of strings with the separator string included.
SubstringMap returns a map of substrings from a map of strings starting at the start index and ending at the end index.
TrackLoadTime tracks the time it takes to load the input and prints the time
Args: done (chan bool): channel to use to track tasks work (string): string used in status printing
Returns: None.