【发布时间】:2019-01-11 03:12:52
【问题描述】:
我正在使用外部库 OpenSSL-Universal 使用 RSA_PKCS1_PADDING 加密密码。不幸的是,char 编码结果的输出长度不一致。假设我有 2048 位模数,我期望的长度结果是 128,否则它将无法解密回纯文本。
BIGNUM *xponent = BN_new();
BIGNUM *modulus = BN_new();
BN_hex2bn(&xponent,xponentInHex);
BN_hex2bn(&modulus,modInHex);
RSA *rsa = RSA_new();
rsa->e = xponent;
rsa->n = modulus;
char encoded[1024] = {0};
RSA_public_encrypt(
(int)strlen(charString),// from len
(const unsigned char *)charString, // from
(unsigned char *)encoded, // to
rsa,
RSA_PKCS1_PADDING
);
RSA_free(rsa);
NSLog(@"%lu", strlen(encoded));
如果我的工具有什么问题,或者如果您对不一致的长度结果有一些解释,请告诉我
【问题讨论】:
标签: ios objective-c openssl rsa