繁体   English   中英

在python中有条件地交换字符串字符? (动态替代密码)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM