gpt4 book ai didi

c++ - 将 Symbian 描述符形式的非常大的整数转换为无符号字符*

转载 作者:行者123 更新时间:2023-11-30 18:05:56 24 4
gpt4 key购买 nike

我们正在尝试使用 Open C/C++ 库 (rsa.h) 和“RSA_public_encrypt”方法在 Symbian 中实现 RSA 加密:

buffSize = RSA_public_encrypt(maxSize, (unsigned char *) plainkey, (unsigned char *) cipherkey, rsa, RSA_NO_PADDING);

我们使用自己的指数和模数创建了一个公钥,并将其放入“rsa”对象中。我们要加密的纯文本是一个以字符串形式接收的非常大的整数(因此作为 Symbian 描述符)。

但是,纯文本应作为“unsigned char*”提供给加密方法。如何将描述符(纯文本)转换为“unsigned char*”,以便加密方法将我们的纯文本解释为一个非常大的整数。或者对于那些不熟悉 Symbian 描述符的人:如何将纯文本从常规字符串 (char *) 转换为加密解释为非常大的整数的值。

我们已经尝试通过多种方式提供纯文本,但加密文本并不是它应该的样子(我们将此与我们验证正确的其他平台上的结果进行比较)。

非常感谢任何帮助。

最佳答案

您必须分配(malloc)plainkey 和cipherkey 变量,并使用lstrcpy 或类似的东西将未加密的纯文本字符串复制到cipherkey,以便使该函数正常工作。

plainkey = malloc(PLAINKEY_SIZE);
cipherkey = malloc(CIPHERKEY_SIZE);
lstrcpy(plainkey, "12345...");
buffSize = RSA_public_encrypt(maxSize, plainkey, cipherkey, rsa, RSA_NO_PADDING);

您还可以使用无符号字符数组:

unsigned char plainkey[PLAINKEY_SIZE] = "12345...";
unsigned char plainkey[CIPHERKEY_SIZE];
buffSize = RSA_public_encrypt(maxSize, plainkey, cipherkey, rsa, RSA_NO_PADDING);

关于c++ - 将 Symbian 描述符形式的非常大的整数转换为无符号字符*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988835/

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