MCPcopy Create free account
hub / github.com/TheAlgorithms/Python / decrypt

Method decrypt

ciphers/hill_cipher.py:168–190  ·  view source on GitHub ↗

>>> hill_cipher = HillCipher(np.array([[2, 5], [1, 6]])) >>> hill_cipher.decrypt('WHXYJOLM9C6XT085LL') 'TESTINGHILLCIPHERR' >>> hill_cipher.decrypt('85FF00') 'HELLOO'

(self, text: str)

Source from the content-addressed store, hash-verified

166 return self.to_int(self.modulus(inv_key))
167
168 def decrypt(self, text: str) -> str:
169 """
170 >>> hill_cipher = HillCipher(np.array([[2, 5], [1, 6]]))
171 >>> hill_cipher.decrypt('WHXYJOLM9C6XT085LL')
172 'TESTINGHILLCIPHERR'
173 >>> hill_cipher.decrypt('85FF00')
174 'HELLOO'
175 """
176 decrypt_key = self.make_decrypt_key()
177 text = self.process_text(text.upper())
178 decrypted = ""
179
180 for i in range(0, len(text) - self.break_key + 1, self.break_key):
181 batch = text[i : i + self.break_key]
182 vec = [self.replace_letters(char) for char in batch]
183 batch_vec = np.array([vec]).T
184 batch_decrypted = self.modulus(decrypt_key.dot(batch_vec)).T.tolist()[0]
185 decrypted_batch = "".join(
186 self.replace_digits(num) for num in batch_decrypted
187 )
188 decrypted += decrypted_batch
189
190 return decrypted
191
192
193def main() -> None:

Callers 1

mainFunction · 0.95

Calls 4

make_decrypt_keyMethod · 0.95
process_textMethod · 0.95
replace_lettersMethod · 0.95
replace_digitsMethod · 0.95

Tested by

no test coverage detected