首页 > 后端开发 > Golang > 为什么 Go 和 Pycrypto 生成不同的 AES-CFB 密文?

为什么 Go 和 Pycrypto 生成不同的 AES-CFB 密文?

Susan Sarandon
发布: 2024-12-16 19:14:21
原创
745 人浏览过

Why Do Go and Pycrypto Produce Different AES-CFB Ciphertexts?

Go 和 Pycrypto 与 AES-CFB 之间的不同结果

当尝试使用 Python 的 Pycrypto 和 Go 的 crypto 包实现 AES-CFB 加密时,观察到密文结果存在显着差异。这种差异是由于加密过程中使用的不同设置造成的:

Python Pycrypto:

  • 具有 16 位段的 AES-CFB 模式 (CFB16)

加密货币package:

  • 8位段的AES-CFB模式(CFB8)

分辨率
Go原生不支持CFB8 开箱即用。不过,通过修改crypto包中内置的CFBDecrypter和CFBEncrypter的源码,可以适配Go支持CFB8。此修改涉及替换某些硬编码常量以适应 8 位段大小。

通过实现此修改,Go 与 Python Pycrypto 实现中使用的加密设置完全兼容。因此,它可以成功解密 Pycrypto 生成的密文,反之亦然。

以上是为什么 Go 和 Pycrypto 生成不同的 AES-CFB 密文?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板