✨ Added comments and bruteforce example
This commit is contained in:
		
							parent
							
								
									78afa2c967
								
							
						
					
					
						commit
						1ea46419ca
					
				|  | @ -1,13 +1,48 @@ | ||||||
| def encrypt_text(cleartext: str = 'Bitcoin', incrementation: int = 13): | def encrypt_text(cleartext: str = 'Bitcoin', incrementation: int = 13): | ||||||
|     encrypted_text = '' |     """ | ||||||
|  |     This method encrypts a text by shifting each letter by the value of incrementation | ||||||
|  | 
 | ||||||
|  |     :param cleartext: The secret message to encrypt | ||||||
|  |     :param incrementation: How much the letters should be shifted | ||||||
|  |     :return: Encrypted text | ||||||
|  |     """ | ||||||
|  |     return shift_text(cleartext, (incrementation % 26))  # '%' to repeat after 26 with 0 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def decrypt_text(encrypted_text: str = 'Ovgpbva', incrementation: int = 13): | ||||||
|  |     """ | ||||||
|  |     This method decrypts a text by shifting each letter by the value of incrementation | ||||||
|  | 
 | ||||||
|  |     :param encrypted_text: The encrypted secret message to decrypt | ||||||
|  |     :param incrementation: How much the letters should be shifted | ||||||
|  |     :return: Decrypted text | ||||||
|  |     """ | ||||||
|  |     return shift_text(encrypted_text, 26 - (incrementation % 26))  # '%' to repeat after 26 with 0 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def shift_text(cleartext: str, incrementation: int): | ||||||
|  |     """ | ||||||
|  |     This method shifts every letter of a string by the value of incrementation | ||||||
|  |     :param cleartext: The string to be shifted | ||||||
|  |     :param incrementation: How much the letters should be shifted | ||||||
|  |     :return: Shifted text | ||||||
|  |     """ | ||||||
|  |     shifted_text = '' | ||||||
| 
 | 
 | ||||||
|     for char in cleartext: |     for char in cleartext: | ||||||
|         encrypted_text += increment_char(char, incrementation) |         shifted_text += increment_char(char, incrementation) | ||||||
| 
 | 
 | ||||||
|     return encrypted_text |     return shifted_text | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def increment_char(char, incrementation: int = 1): | def increment_char(char, incrementation: int = 1): | ||||||
|  |     """ | ||||||
|  |     This method shifts one char by the value of incrementation | ||||||
|  | 
 | ||||||
|  |     :param char: Char to be shifted | ||||||
|  |     :param incrementation: How much the char should be shifted | ||||||
|  |     :return: Shifted letter | ||||||
|  |     """ | ||||||
|     # converting character to byte |     # converting character to byte | ||||||
|     char_in_bytes = bytes(char, 'utf-8')[0] |     char_in_bytes = bytes(char, 'utf-8')[0] | ||||||
|     if char_in_bytes + incrementation >= 91 and char_in_bytes < 91 \ |     if char_in_bytes + incrementation >= 91 and char_in_bytes < 91 \ | ||||||
|  | @ -19,15 +54,22 @@ def increment_char(char, incrementation: int = 1): | ||||||
|     return str(new_char_in_bytes)[2] |     return str(new_char_in_bytes)[2] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def decrypt_text(encrypted_text: str = 'Ovgpbva', incrementation: int = 13): | def brute_force_example(cleartext: str = 'Bitcoin', incrementation: int = 7): | ||||||
|     cleartext = '' |     """ | ||||||
|  |     This is an example of how to bruteforce an encrypted text. (Encrypted with Letter-Shifting) | ||||||
| 
 | 
 | ||||||
|     for char in encrypted_text: |     :param cleartext: The secret message to encrypt and decrypt during bruteforcing | ||||||
|         cleartext += increment_char(char, 26 - incrementation) |     :param incrementation: How much the letters should be shifted | ||||||
|  |     """ | ||||||
|  |     encrypted_text = encrypt_text(cleartext, incrementation=incrementation) | ||||||
| 
 | 
 | ||||||
|     return cleartext |     for x in range(26): | ||||||
|  |         if cleartext == decrypt_text(encrypted_text, incrementation=x): | ||||||
|  |             print(f'Text was shifted by {x} letters.') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     print(encrypt_text()) |     print(encrypt_text()) | ||||||
|     print(decrypt_text()) |     print(decrypt_text()) | ||||||
|  | 
 | ||||||
|  |     brute_force_example() | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user