3des加密的cbc模式里的初始向量的问题

发布于 2022-08-25 11:04:06 字数 561 浏览 32 评论 0

最近因为要把一些加密解密的过程封在PHP扩展中,在看一些PHP的mcrypt代码。 对于cbc模式里的那个iv向量,有点懵。

相关代码在php-5.2.14/ext/mcrypt/mcrypt.c中的定义mcryptcreateiv函数一段,即生成初始向量IV,在1214行。 其简化之后的代码片段如下:

int main()
{
    int i,a[8] = {180428933,846930886,168162777,171463915,19747793,4228335,71985386,169760492};
    char *iv;

    iv = (char *)malloc(8);
    for(i=0;i<8;i++)
    {
        iv[i] = a[i];
    }

    free(iv);
    return 1;
}

其实就是将int型的变量赋值给一个char型的变量,不太明白这样操作的原因,望高人能给解释一下。是跟cbc模式算法有关么?必须通过这种操作,引发一个隐式的类型转换来获取一个奇怪的向量?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文