gpt4 book ai didi

c - 如何为 EVP_CIPHER 设置零填充?

转载 作者:行者123 更新时间:2023-12-02 02:57:43 25 4
gpt4 key购买 nike

可以设置Zero Padding使用 EVP_CIPHER 时。

我知道 EVP_EncryptInit_ex 的默认填充已启用,并且它使用 PKCS 填充。

使用EVP_CIPHER_CTX_set_padding,您只能启用和禁用填充。

最佳答案

正如维基百科正确指出的那样,零填充并未标准化用于加密。明文是否可以以 00 字节结束可能是不确定的。此外,如果明文包含整数个 block ,则有些实现会添加附加 block ,而其他实现则不添加附加 block 。

我在 EVP 密码套件中没有看到零填充,但自己实现非常简单,只需自己执行填充,然后禁用填充即可。一种方法是将明文复制到零值 block ,例如由memset创建。该方法的唯一问题是您不能简单地在填充模式之间切换,它仍然是一种特殊情况。

如果可能,请尝试使用 PKCS#7 兼容的填充方案。如果您必须使用零填充,请确保您可以检索明文的大小,并提前定义是否添加额外的零 block (例如,PHP 不添加,Bouncy CaSTLe 则添加)。

关于c - 如何为 EVP_CIPHER 设置零填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com