我有以下四行代码:
unsigned char key[] = {1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1};
unsigned char iv[] = {1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8};
printf("key = %s length = %d\n",key, strlen((char *)key));
printf("iv = %s length = %d\n",iv, strlen((char *)iv));
使用初始化程序,我希望在变量key和iv的末尾附加一个NULL字符,所以我希望两者的长度都是16,但是当我编译并运行此代码时,我得到的输出为如下所示:
key =(32个二进制字符)length = 32
iv =(16个二进制字符)长度= 16
但是正如我们所看到的,iv的长度是预期的16,但是iv的长度大于16.不确定为什么在键的情况下没有添加null终止符。有人可以指出是否默认添加空终止符。