将 Heidisql 备份文件导出后,可以用此脚本恢复密码
# -*- coding: utf-8 -*-
import re
hosts = []
users = []
passwords = []
def heidipass(code):
ascii = code[:-1]
d = int(code [-1])
decode = lambda x:chr(int(x,16) - d)
password = ''.join(map(decode,re.findall("\w{2}",ascii)))
return password
def main():
with open("heidisql.txt", encoding="utf8") as f:
lines = [r.strip() for r in f.readlines() if "\\Host<" in r]
hosts = [re.split("\<\|\|\|\>",r)[-1] for r in lines]
with open("heidisql.txt", encoding="utf8") as f:
lines = [r.strip() for r in f.readlines() if "\\User<" in r]
users = [re.split("\<\|\|\|\>",r)[-1] for r in lines]
with open("heidisql.txt", encoding="utf8") as f:
lines = [r.strip() for r in f.readlines() if "\\Password<" in r]
passwords = [re.split("\<\|\|\|\>",r)[-1] for r in lines]
i = 0
for r in passwords:
print("Host: {} User: {} Password: {}".format(hosts[i], users[i], heidipass(r)))
i = i + 1
if __name__ == '__main__':
main()