我在 Cocoa 环境中解密 RSA 公钥时遇到了麻烦。我在 public.pem 中加密了哈希、公钥和-----BEGIN PUBLIC KEY-----
警卫(由 openssl 生成)
NSData *encryptedData = base64dec(license);
NSString *publicKeyPath = [[NSBundle mainBundle] pathForResource:@"public" ofType:@"pem"];
NSData *publicKeyData = [NSData dataWithContentsOfFile:publicKeyPath];
SSCrypto *crypto = [[SSCrypto alloc] initWithPublicKey:publicKeyData];
[crypto setClearTextWithData:encryptedData];
[crypto verify];
NSString *verifiedKey = [crypto clearTextAsString];
但verifiedKey
始终为零。看起来 SSCrypto 无法将 NSData 转换为 NSString。我如何才能真正解密数据?
最终使用此代码(以消除 base64 解码步骤)
[crypto setCipherTextFromBase64String:license];
NSString *verifiedKey = [crypto clearTextAsString];
但verifiedKey
始终是一个空字符串。这是什么意思?输入数据似乎是正确的。