加密 - 解密多次

时间:2018-02-25 06:12:49

标签: python python-2.7 encryption cryptography pycrypto

我正在尝试使用Python2.7进行密码学。我能够加密 - 解密文本一次。但是当我尝试多次加密 - 解密时,在循环中,它不会在变量p中返回原始字符串。请查看我的代码,并建议可以做些什么。谢谢!

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  </head>
  <body>
    <input type="checkbox" value="val1">Val 1
    <input type="checkbox" value="val2">Val 2
    <input type="checkbox" value="val3">Val 3
    <button onclick="return ShowValue()"> Show </button>
    <div id="result">
    </div>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

首先免责声明:Python并不是我的强项,但嘿,自从我回答了一段时间以来已经有一段时间了,为什么不呢......

我猜你的问题应该是&#34;为什么解密不能产生原始输入&#34;。

一方面 - 为什么?使用相同的密钥并不能更好地加密。

对于两个人来说 - 它并不意味着那样工作。我非常确定这与加密和解密对象是有状态的并且无法重用这一事实有关。 This SO post describes it更详细。

但是,两个小小的改动会让它(某种程度上)发挥作用,就像你将原始资源恢复一样。

for i in range(2):
    enc = AES.new(k, AES.MODE_CBC, IV)   ## move this line inside the loop
    p = enc.encrypt(p)
    print p

for i in range(2):
    dec = AES.new(k, AES.MODE_CBC, IV)   ## and this line too
    p = dec.decrypt(p)

这可能是,也可能不是你所希望的。