import random L = 8 perm = range(L) random.shuffle(perm) msg = open("/flag").read().strip() while len(msg) % (2*L): msg += ";" for i in xrange(100): msg = msg[1:] + msg[:1] msg = msg[0::2] + msg[1::2] msg = msg[1:] + msg[:1] res = "" for j in xrange(0, len(msg), L): for k in xrange(L): res += msg[j:j+L][perm[k]] msg = res print (msg)
时间: 2024-04-04 14:29:22 浏览: 117
QuanPaiLie.rar_K._perm(list_x_M)_全排列
这是一段 Python 代码,它打乱了一个长度为8的排列,然后读取了 flag 文件的内容,将其去除首尾空白符,并且在末尾添加分号,直到长度为 8 的倍数。然后进行 100 次变换:先将字符串循环移位一个字符,然后将字符串中的奇数位和偶数位分别交换,最后再将字符串循环移位一个字符。最后将字符串按照之前打乱的顺序重新排列,输出结果。
这段代码可以用于加密 flag,在输出的结果中对于任何人都不可读。但是这种加密方式并不安全,因为该代码中的加密算法是对称的,一旦获取了打乱排列的顺序,就可以轻松地解密出原始的 flag。
阅读全文