【发布时间】:2017-07-28 11:10:30
【问题描述】:
我刚刚完成了一个小的 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 中交换 2 个字符,并且让交换的字符取决于 a.index(p) 和 @ 的值,该怎么办? 987654325@每个被加密的字符?怎么做呢?
【问题讨论】:
标签: python encryption dynamic swap substitution