我有以下代码
func encrypt(key, data string) (string, error) {
byteKey := []byte(key)
plaintext := []byte(data)
block, err := aes.NewCipher(byteKey)
if err != nil {
return "", err
}
ciphertext := make([]byte, len(plaintext))
stream := cipher.NewCTR(block, byteKey[aes.BlockSize:])
stream.XORKeyStream(ciphertext, plaintext)
return base64.StdEncoding.EncodeToString(ciphertext), nil
}
哪里byteKey = []byte("4e8f1670f502a3d40717709e5f80d67c")
(不确定这是否是正确的语法,但这是十六进制的关键。)
我的任务是用任何语言编写解密程序,这就是我目前所做的:
import base64
from Crypto.Cipher import AES
def decrypt(ct):
key = '4e8f1670f502a3d40717709e5f80d67c'.decode('hex')
nonce = 0
ct1 = base64.b64decode(ct)
cipher = AES.new(key, mode=AES.MODE_CTR, counter=lambda: nonce)
print str(cipher.decrypt(ct1))
我做错了什么我只是不知道是什么。请问高手可以帮忙吗?提前致谢。