Python实现自动定义变量和赋值

By | May 5, 2020

今天遇到一个问题,需要实现一个JS加密代码转位Python

<script type="text/javascript">q7z6=3876;k1g7=7882;p6k1=6688;l2l2=1166;t0r8=4339;n4u1=6898;z6t0=6582;r8i9=3406;m3n4=4100;s9c3=5023;z6k1m3=0^q7z6;s9g7z6=1^k1g7;p6d4t0=2^p6k1;u1y5a1=3^l2l2;k1x4h8=4^t0r8;y5j0o5=5^n4u1;j0q7q7=6^z6t0;w3l2k1=7^r8i9;g7a1e5=8^m3n4;b2o5w3=9^s9c3;</script>

先获取到JS定义的内容

html = 'q7z6=3876;k1g7=7882;p6k1=6688;l2l2=1166;t0r8=4339;n4u1=6898;z6t0=6582;r8i9=3406;m3n4=4100;s9c3=5023;z6k1m3=0^q7z6;s9g7z6=1^k1g7;p6d4t0=2^p6k1;u1y5a1=3^l2l2;k1x4h8=4^t0r8;y5j0o5=5^n4u1;j0q7q7=6^z6t0;w3l2k1=7^r8i9;g7a1e5=8^m3n4;b2o5w3=9^s9c3;'

然后转为列表,并去掉最后一个空元素,

html = html.split(";")
html.pop()

然后循环取值赋值 exec(‘{} = {}’.format(kv[0],kv[1])) 实现自动定义变量和赋值

for i in html:
      kv = i.split("=")
    exec('{} = {}'.format(kv[0],kv[1]))
    print(kv[0])