gpt4 book ai didi

c++ - TripleDes 会改变数据大小吗

转载 作者:行者123 更新时间:2023-11-27 23:21:49 25 4
gpt4 key购买 nike

我有一个使用 Triple DES 加密和解密数据的代码。代码一切正常。

我对 Triple Des 有疑问。Triple DES 在执行加密过程时会改变数据大小。我用谷歌搜索,对得到的答案感到非常困惑。

它会改变吗?如果是意味着如何找到加密数据的大小。

代码如下:

unsigned char   initVector[8];
unsigned char* block;
int j;

memset(initVector, 0xEE, sizeof(initVector));
nBlocks = dwDataSize / 8;

for (i=0; i < nBlocks; i++)
{
block = (unsigned char*) pData + i*8;
memset(initVector, 0xEE, sizeof(initVector));
des_ede3_cbc_encrypt((unsigned char *)block,(unsigned char *)block, 8,
m_Schedule1 , m_Schedule2, m_Schedule3, (C_Block *)initVector, DES_ENCRYPT);

我在另一个讨论中看到大小会改变。

这是链接。 Length of Encrypted String

问候,湿婆./

最佳答案

TripleDES 是一个分组密码原语。 block 密码的工作原理是根据 key 创建输入数据 block (应该与随机数据无法区分)的排列,只有在 key 已知的情况下才能反转。

因此,加密数据占用的空间量与输入数据完全相同(除了最后一个 block 的填充)。典型的 block 大小是 4 到 32 字节之间的任意 2 的幂。

(一个思想实验:密文不可能比输入,因为这样两个不同的输入必须映射到相同的密文,这是不可能的。反之,如果密文更长,那么就会有某些密文永远不会成为加密的结果,因此不会“与随机数据无法区分”。)

关于c++ - TripleDes 会改变数据大小吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347148/

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