- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 OpenSSL EVP_Encrypt API,采用 AES_ctr_128 模式。我正在尝试检索更新的(增量计数器)在 OpenSSL 1.1.0 中,我们不能简单地执行以下操作:
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
/*
EVP_EncryptInit(ctx, ...);
EVP_EncryptUpdate(ctx, ...);
EVP_EncryptFinal(ctx, ...);
*/
memcpy(iv, ctx->iv, sizeof(ctx->iv);
因为 ctx 结构被隐藏(上面的代码出现不完整类型错误)。
此外,该字段没有任何 get API。
有什么方法可以获取存储在 EVP_CIPHER_ctx 结构中的更新后的 IV 缓冲区(增量 IV)吗?
最佳答案
仅当您将固定数量的 block (AES 的 block 大小为 16)写入密码时,单独的 IV 就足够了。因此,无论如何您都需要跟踪写入的数据量。
要检索计数器值,如果您自己计算的话会更容易。然后您可以重新启动特定 IV 的密码流。请注意,您可能仍然需要跳过一定量的明文或密文,例如通过加密零值字节,然后才能继续操作。
因此,要计算计数器值,只需将 IV 与已处理的完整 block 数相加即可:len(pt)/n
其中 len
是以字节为单位的长度和使用整数除法的n = 16
。 IV 由随机数和作为固定大小的大端数的初始计数器值组成。因此,您只需将 IV 的每个字节与整数的每个字节相加,从右向左获取可能的进位(最低有效字节的高索引,最高有效字节的低索引)。
要计算需要跳过多少字节(即在 key 流再次同步之前加密/解密,您只需计算 len(pt) % n
其中 %
为余数或模运算符。
关于encryption - OpenSSL EVP_CIPHER_CTX 获取更新 IV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548110/
我有一个单线程客户端/服务器应用程序,需要对其网络通信进行加密和解密。我计划使用 OpenSSL 的 EVP API 和 AES-256-CBC。 我从几个示例中找到了一些示例伪代码: // key
我正在使用 OpenSSL EVP_Encrypt API,采用 AES_ctr_128 模式。我正在尝试检索更新的(增量计数器)在 OpenSSL 1.1.0 中,我们不能简单地执行以下操作:
问题:我需要将 Cepstral(tts 引擎)安装到运行 Debian 8 的 Freeswitch 中。Freeswitch 已经启动并运行,但我需要从源代码构建它,以便它创建 mod_cepst
我正在尝试从 OpenSSL 中的 EVP_CIPHER_CTX *ctx 或 EVP_CIPHER *kt 获取 iv 和 key 以及其他内容,例如加密系统名称。我搜索了很多,但没有找到返回 ke
我是一名优秀的程序员,十分优秀!