【问题标题】:How to convert hex string again into cipher text for decryption如何将十六进制字符串再次转换为密文进行解密
【发布时间】:2015-12-03 05:35:43
【问题描述】:

我正在使用pycrypto 模块生成密文。问题是生成的密文无法保存在某个地方,因为它不是人类可读的。

 >>> a=AES.new("1234567890123456")
    >>> m='aaaabbbbccccdddd'
    >>> a.encrypt(m)
    'H\xe7\n@\xe0\x13\xe0M\xc32\xce\x16@\xb2B\xd0'

我想将此加密消息保存在我的数据库中,但现在我不能这样做,因为它不是人类可读的。我可以通过转换成十六进制来保存数据:

a.encrypto(m).encode('hex')

并生成十六进制代码并将其保存在我的数据库中。问题是我如何将这个encrypted hex code 转换回相同的形式进行解密?任何人都可以在这里帮助我吗?

我的用户将从数据库中访问加密的消息,对其进行解密,然后检查消息的完整性!谁能帮我将十六进制代码转换回密文?

【问题讨论】:

    标签: python encryption cryptography hex pycrypto


    【解决方案1】:

    反向 - 使用hex进行解码:

    >>> encrypted = 'H\xe7\n@\xe0\x13\xe0M\xc32\xce\x16@\xb2B\xd0'
    >>> encoded = encrypted.encode('hex')
    >>> decoded = encoded.decode('hex')
    >>> encrypted == decoded
    True
    

    【讨论】:

    • 我使用 base64.b64encode(cipher_text)base64.b64decode(instance.encrypted_message) 对我的数据进行解码和编码,它对我有用。
    【解决方案2】:

    问题解决! :)

    您可以使用base64.b64encode(cipher_text) 将数据保存到数据库中,然后使用base64.b64decode(instance.encrypted_message) 检索数据。解决方案对我有用。

    您还需要import base64

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-07
      • 2014-02-21
      • 2017-08-23
      • 2014-03-19
      • 2011-08-25
      • 2014-04-28
      • 2018-01-31
      相关资源
      最近更新 更多