Im trying to read a key and identifier from a .txt
-file with the following content:
Wiederherstellungsschlüssel für die BitLocker-Laufwerkverschlüsselung
Um zu überprüfen, ob es sich um den richtigen Wiederherstellungsschlüssel handelt, vergleichen Sie den Beginn des folgenden Bezeichners mit dem auf dem PC angezeigten Bezeichnerwert.
Bezeichner:
F85E6660-52A8-43D9-B66Z-F61246666666
Falls der obige Bezeichner mit dem auf dem PC angezeigten Bezeichner übereinstimmt, sollten Sie den folgenden Schlüssel zum Entsperren des Laufwerks verwenden.
Wiederherstellungsschlüssel:
222222-333333-444444-555555-666666-777777-888888-999999
Falls der obige Bezeichner nicht mit dem auf dem PC angezeigten Bezeichner übereinstimmt, handelt es sich nicht um den richtigen Schlüssel zum Entsperren des Laufwerks.
Versuchen Sie es mit einem anderen Wiederherstellungsschlüssel, oder suchen Sie unter "https://go.microsoft.com/fwlink/?LinkID=260589" nach weiteren Informationen.
While using the regex:
identifier_pattern = r"[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}"
key_pattern = r"[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}"
It works when I save the text in multi-line or single-line strings but not when I read the file.
I tried read()
and iterating the input line by line or deleting linebreaks and tabs but it doesn't work either.
#Example use
import re
identifier_pattern = r"[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}"
single_line = " F85E6660-52A8-43D9-B66Z-F61246666666"
# Works
print(re.search(identifier_pattern,single_line))
# Doesn't work
with open("testKey.txt") as file:
for line in file:
line_clear = line.replace('\r',' ').replace('\n' , ' ').replace('\t' , ' ')
match = re.search(identifier_pattern,line_clear)
print("match: ", match , "line: ",line_clear)
# Doesn't work
def extract_bitlocker_info(file_path):
with open(file_path, 'r') as file:
content = file.read()
identifier_pattern = r"[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}"
identifier = re.search(identifier_pattern, content)
recovery_key_pattern = r"[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}-[0-9]{6}"
recovery_key = re.search(recovery_key_pattern, content)
return identifier, recovery_key
file_path = "testKey.txt"
identifier, recovery_key = extract_bitlocker_info(file_path)
print("Identifier:", identifier)
print("Recovery Key:", recovery_key)
What is the reason that the regular expressions do not work with input from .txt
-files?
EDIT: By "Does not work" I mean that re.search()
returns None
.
extract_bitlocker_info
function? Are you sure there is a TAB before the pattern? Try withrecovery_key_pattern = r"\b\d{6}(?:-\d{6}){7}\b"
line_clear
has. Should be easy.