【问题标题】:golang encrypt cipher.Block / AES key itselfgolang 加密 cipher.Block / AES 密钥本身
【发布时间】:2017-09-29 00:07:44
【问题描述】:

我正在使用 cipher.Block 类型的 AES 密钥,该密钥是使用 crypto/aes 包生成的,具有以下功能:

aesBlock, err := aes.NewCipher(randKey)

我使用它来加密一组特定的数据,但之后我想用公钥加密aesBlock 本身,以便我可以存储并稍后使用非对称私钥解密。但是,我很难找到加密aesBlock 的最佳方法。显然,这需要是可逆的,以便我可以使用它来解密前面提到的数据。

来自crypto/aesfunc EncryptOAEP 似乎很合适,因为它需要*PublicKey,但是msg 参数的类型为[]byte,而我的AES 密钥的类型为cipher.Block。不确定直接转换是否可行,甚至是一个好主意。

有什么想法吗?

【问题讨论】:

  • 您为什么要尝试加密aesBlock 本身?只需加密并存储randKey 并根据需要创建一个新的aesBlock
  • 是否会使用randKey 重新创建相同的aesBlock?我想我认为这更像是一种盐,可以帮助进一步随机化aesBlock
  • Welp,你是对的 - 我刚刚测试过。我不敢相信我没有意识到这一点。感谢您的启发。

标签: go encryption aes encryption-asymmetric


【解决方案1】:

正如 Adrian 在 cmets 中指出的那样,解决方案比我想象的要简单。您需要做的就是加密并存储randKey。使用解密的randKey 重新生成aesBlock 会产生相同的结果。

【讨论】:

    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2012-02-21
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2011-01-03
    相关资源
    最近更新 更多