Я использую внешнюю библиотеку OpenSSL-Universal для шифрования пароля с использованием RSA_PKCS1_PADDING. К сожалению, выходные данные с закодированным символом имеют непоследовательную длину. Допустим, у меня есть 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));
если что-то не так с моими орудиями или если у вас есть какое-то объяснение о непоследовательной длине, пожалуйста, дайте мне знать