【发布时间】:2022-01-10 08:01:04
【问题描述】:
您好,我的一个返回 char* 的函数 generateKey() 有问题。 它生成正常的密钥,但是当我打印它时,我会看到一些奇怪的东西。
char* aesStartup::generateKey()
{
const char alphanum[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char newKey[32];
srand(time(0));
for (int i = 0; i < 32; i++)
newKey[i] = alphanum[rand() % 62];
cout << newKey;
return newKey;
}
输出:u6gWj8dBHxJhEztsHXfE5V3HSvZ2zVNb╠╠╠╠╠╠╠╠0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
有人可以帮我吗?
【问题讨论】:
-
您在字符末尾缺少
\0(NUL) 字符。newKey[31]必须是\0。否则,您打印的数量会超出您的预期。