pycrypt.solvers package

Submodules

pycrypt.solvers.bruteforcesolver module

class pycrypt.solvers.bruteforcesolver.BruteForceSolver(keyGenerator=<pycrypt.keygenerators.numberkeygenerator.NumberKeyGenerator object>, translator=<pycrypt.translators.caesartranslator.CaesarTranslator instance>, scorer=<pycrypt.scorers.czechscorer.CzechScorer instance>, quiet=False)[source]

Bases: pycrypt.solvers.solver.Solver

Tries out all possible solutions

solve(text=None, return_all_keys=False)[source]
lastPrint(key, score, text=None)[source]
setKeyGenerator(keyGenerator)[source]
setStartingPoint(startingPoint)[source]

pycrypt.solvers.geneticsolver module

class pycrypt.solvers.geneticsolver.GeneticSolver(keyGenerator=None, translator=<pycrypt.translators.substitutiontranslator.SubstitutionTranslator instance>, scorer=<pycrypt.scorers.czechscorer.CzechScorer instance>, population_size=20, mutations=20, random_starting_population=1000, quiet=False, exclude_tried=False, log=False, crossover=True, temperature=False, temperature_func=<function <lambda>>)[source]

Bases: pycrypt.solvers.solver.Solver

Uses own genetic algorithm, calls KeyGenerators mutateKey method

solve(text=None, iterations=0, return_all_keys=False)[source]

Set iterations to 0 for infinite loop

printer(key, score, text=None, iterations=None)[source]

Gets the best sample in population in every cycle

setStartingPoint(startingPoint)[source]

Starting population -> can be list

lock(string, key=None)[source]

Lock character in the keyGenerator for the given key, if None, startingPoint key is used

plotLog()[source]

pycrypt.solvers.solver module

class pycrypt.solvers.solver.Solver(keyGenerator, translator=None, scorer=<pycrypt.scorers.czechscorer.CzechScorer instance>)[source]

Bases: object

Abstract class for connecting KeyGenerators, Scorers and optionally Translators

solve(text=None)[source]

Find best scored key for the given text (if None, the key itself will be scored) Returns best (score, key) pair

setStartingPoint(startingPoint)[source]

Set where the solve method should start (useful for continuing genetics)

score(key, text=None, return_ciphered=True)[source]
printer(key, score, text=None)[source]

Callback method for every key generated and scored

lastPrint(key, score, text=None)[source]

Callback method for last and best result

pycrypt.solvers.threadedgeneticsolver module

pycrypt.solvers.threadedgeneticsolver.mapper(solver)[source]
class pycrypt.solvers.threadedgeneticsolver.ThreadedGeneticSolver(keyGenerator=<pycrypt.keygenerators.substitutionkeygenerator.SubstitutionKeyGenerator object>, translator=<pycrypt.translators.substitutiontranslator.SubstitutionTranslator instance>, scorer=<pycrypt.scorers.czechscorer.CzechScorer instance>, num_processes=None, migration_iterations=10, migration_size=10, quiet=False, log=False, **kwargs)[source]

Bases: pycrypt.solvers.solver.Solver

Implements the island model using GeneticSolver

solve(text=None, iterations=0, return_all_keys=False)[source]

Paralelized GeneticSolver’s solve. Note that you can’t interrupt the evolution as you could normally.

printer(key, score, text=None, iterations=None)[source]

Gets the best sample in population in every cycle

setStartingPoint(startingPoint)[source]
lock(string, key=None)[source]
plotLog()[source]

Module contents