[英]Conditional swap of string characters in python? (Dynamic Substitution Cipher)
我刚刚完成了一个小的viginere密码,然后我想通过在每个字符加密后在sbox中添加两个字符交换来尝试使其变得动态。
问题是,在我所见过的所有关于交换字符串中字符的信息中,要交换的字符的位置都必须在代码本身中写出。 有没有办法使要交换的字符取决于另一函数回合的结果?
一些澄清:在我的代码的顶部,我有:
a = 'abcdefghijklmnopqrstuvwxyz'
然后在加密功能中我有:
for p,k in zip(plaintext,keystream):
pt = a.index(p)
kt = a.index(k)
c = pt + kt
if c > 25:
c -= 25
c = a[c]
ciphertext += c
所以我的问题是,如果我想在明文中a
每个字符都加密之后在a
交换2个字符,并进行加密,以便交换的字符取决于a.index(p)
和a.index(k)
的值,该a.index(p)
a.index(k)
每个要加密的字符? 人们将如何去做呢?
这样的事情会工作:
if not p == k:
x, y = p, k if p < k else k, p
a = a[:x] + a[y] + a[x+1:y] + a[x] + a[y+1:]
这将占用所有内容,直到第一个字符,然后使用其他字符,然后使用两个字符之间的所有内容,然后用第一个字符替换第二个字符,最后替换第二个字符之后的所有内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.