python - 易于使用的 Python 加密库/包装器?

标签 python encryption aes

我想在 Python 中用密码加密任意长度的字符串。我宁愿处理填充、 key 生成和 IV,因为老实说,我对密码学了解不多,我想避免搞砸。我也更喜欢使用众所周知的密码作为 AES。

我理想的库(我们称它为 MagicCrypt)会像这样工作:

from MagicCrypt import AES
p = "plaintext"
k = "password"
crypt = AES(k)
c = crypt.encrypt(p)
p == crypt.decrypt(c) # True

我检查过 PyCrypto , m2crypto , pycryptopp , GPGmekeyczar .他们似乎都没有提供这种非常易于使用的模式。 keyczar 最接近,但出于某种原因想要使用保存在类似文件的对象或类似对象中的 key 集。

据我所知,我将不得不求助于使用 Popen 调用 mcrypt,它确实提供了一种完全像这样工作的模式——部分原因我猜真的没有技术这不存在的原因。

您知道一个易于使用、安全的 Python 加密库吗?如果没有,使用任何已经提到的库的最简单(但安全)的方法是什么?

最佳答案

你列出了 m2crypto,但你看到 m2secret 了吗? http://www.heikkitoivonen.net/m2secret/ 处的示例似乎正是您想要的。

免责声明:我没有使用过它,它在 pypi 上列为 alpha 质量 http://pypi.python.org/pypi/m2secret/0.1.1

更新 - 在这里回答一段时间后我写了simple-crypt这是 pycrypto 的简单包装器。它对 python 2.7 和 3 进行 aes 加密,类似于 Rob 在下面的回答但还包括 PBKDF2 以生成更安全的 key 。

关于python - 易于使用的 Python 加密库/包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296535/

相关文章:

python - cv2.waitKey(25) & 0xFF == ord ('q' ) : and cv2. imwrite() 不工作

python - 精确在线 API : deleting and updating items like BankEntryLines

python - 属性错误: 'psycopg2.extensions.cursor' object has no attribute 'fast_executemany'

algorithm - 这是某种形式的加密数据吗?

ssl - 如何加密 server.ssl.key-store-password 值并在 Spring Boot 中使用它

encryption - 使用明文 key 进行 3DES 加密

javascript - 在 Node-RED 中解码 AES-CTR 消息

python - 在 python 中使用 AES 生成 ECB 企鹅

php - mcrypt_encrypt 的 32 个字符的 PHP AES key

python - Pandas Dataframe 中多列的普通最小二乘回归