python中的AESGCM解密

2024-04-24 13:45:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解密从AES\GCM生成的密码文本。密码文本是从果朗的“crypto/aes”库中生成的。现在,我正在尝试使用cryptodome库破译python中的加密文本。在

func AESEncryption(key []byte, plaintext []byte)([]byte, error){
   c, err := aes.NewCipher(key)
   if err != nil {
      log.Printf("Error ocurred in generating AES key %s", err)
      return nil,  err
   }

   gcm, err := cipher.NewGCM(c)
   if err != nil {
      return nil,  err
   }

  nonce := make([]byte, gcm.NonceSize())
  if _, err = io.ReadFull(rand.Reader, nonce); err != nil {
    log.Printf("Error ocurred in generating AES key %s", err)
      return nil, err
  }

  return gcm.Seal(nonce, nonce, plaintext, nil), nil

}

明文:=“我会成为我应得的,有什么像自由意志吗?”在

十六进制编码密钥: E629ED98829A893899DDDA67F582EDE72E2A187DD1DD5ADA54F49CFE2C8675F

十六进制编码的加密文本= 9012a33bfb0a51dec4f96404cdd7300ec6afca1fa0d6679a7c036652d014a38faf909e9c44d08dffac121aa85d48b7256fa74542e2545e27dc070adfc03af26f2a32f50c2c311d5c91ff6de2ca3b4347da70669575c9b198f4 在golang中解密加密文本执行成功,但在python中没有成功。在

用python进行解密的代码。在

^{pr2}$

Tags: key文本log密码returnifbytenonce
1条回答
网友
1楼 · 发布于 2024-04-24 13:45:58

对我来说很有魅力。在

from Crypto.Cipher import AES
import binascii

key = binascii.unhexlify('e629ed98829a893899ddda67f582ede72e2a187dd1ddd5ada54f49cfe2c8675f')
data = binascii.unhexlify('9012a33bfb0a51dec4f96404cdd7300ec6afca1fa0d6679a7c036652d014a38faf909e9c44d08dffac121aa85d48b7256fa74542e2545e27dc070adfc03af26f2a32f50c2c311d5c91ff6de2ca3b4347da70669575c9b198f4')
nonce, tag = data[:12], data[-16:]
cipher = AES.new(key, AES.MODE_GCM, nonce)
cipher.decrypt_and_verify(data[12:-16], tag)

显示器

^{pr2}$

相关问题 更多 >