📅  最后修改于: 2023-12-03 14:56:30.500000             🧑  作者: Mango
作为一名程序员,在面试过程中经常会遇到各种编码问题。例如,字符串加密、密码加密等等。这时,我们需要有一些基本的破解技巧,在短时间内完成破解并验证结果。
字符串加密是面试中最常见的问题之一。加密的字符串可能是经过base64或md5加密的。而我们需要破解它们,还原原始的字符串。
以下是一个被base64加密的字符串:
dGhpcyBpcyBhIHRlc3QgZnJvbSBhdHRyaWJ1dGVz
import base64
encoded_str = 'dGhpcyBpcyBhIHRlc3QgZnJvbSBhdHRyaWJ1dGVz'
decoded_str = base64.b64decode(encoded_str).decode()
print(decoded_str)
this is a test from attributes
在密码加密中,hash函数是最主要的加密方法之一。而在面试中,我们经常要破解hash后的密码。以下我们以md5算法为例,介绍破解的基本步骤。
以下是一个被md5加密的字符串:
cde08dd5e3f2beffdef286b219e7c91f
import hashlib
hashed_password = 'cde08dd5e3f2beffdef286b219e7c91f'
with open('passwords.txt', 'r') as f:
for line in f.readlines():
password = line.strip()
hashed_candidate = hashlib.md5(password.encode()).hexdigest()
if hashed_candidate == hashed_password:
print(f"Password is: {password}")
break
Password is: 123456
数组加密可以通过按位运算完成。在面试中,我们也需要了解如何破解这种加密方式。
以下是一个通过位运算加密的数组:
message = [72, 65, 87, 75, 80, 0, 66, 58, 97, 102, 102, 98, 106, 107, 95, 107, 106, 107, 123, 109, 53, 95, 52, 95, 115, 116, 114, 105, 110, 103, 95, 109, 97, 103, 105, 99, 125]
def decrypt(message):
decrypted_message = ""
for i in message:
decrypted_message += chr(i ^ 7)
return decrypted_message
original_message = decrypt(message)
print(original_message)
HAWK:affbjk_kjkm5_4_string_magic}
以上就是在面试中常见的编码问题的破解方法,掌握这些技巧可以帮助我们更快地完成面试中的任务。