私は今、私のプログラミングの習慣はあまり良くありません。pyDes解読 "データは8バイトの倍数でなければなりません"
Traceback (most recent call last):
File "E:\Python\Examples\Encrypt.py", line 23, in <module>
decrypted = str (data.decrypt (encrypted)) [2:-1]
File "E:\Python\Libraries\pyDes\pyDes.py", line 836, in decrypt
block = self.__key3.crypt(iv, DECRYPT)
File "E:\Python\Libraries\pyDes\pyDes.py", line 572, in crypt
raise ValueError("Invalid data length, data must be a multiple of " + str(self.block_size) + " bytes\n.")
ValueError: Invalid data length, data must be a multiple of 8 bytes
申し訳ありませんが、これは本当に迷惑である場合:私はプログラムを実行すると、暗号化が正常に動作します
import os, sys, binascii
text = input ("Text to be encrypted...")
key = input ("Key...")
sys.path.append (os.path.abspath ("").split (":") [0] + ":\\Python\\Libraries\\pyDes")
import pyDes
def toKey (string):
b = string
a = 0
if len (b) > 16:
while len (b) != 16:
b = b [:-1]
elif len (b) < 16:
while len (b) != 16:
b += b [a]
a += 1
return b
key = toKey (key)
data = pyDes.triple_des(key, pyDes.CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=pyDes.PAD_PKCS5)
print ("Before: " + text)
encrypted = str (data.encrypt (text)) [2:-1]
print ("Encrypted: " + encrypted)
decrypted = str (data.decrypt (encrypted)) [2:-1]
print ("Decrypted: " + decrypted)
、しかし、復号化でエラーが発生します:私はthierウェブサイトから基本pyDesコードを変更しましたそしてシンプルな:-(
エンコード/デコードの問題が許可されていない場合は、私に尋ねると、暗号に関する質問について約30%の削除が可能です。 –