我在IPhone应用程序中使用MyCrypto库。该程序将与由WCF.The服务编写的web服务进行通信,该服务将通过提供模数和指数来提供公钥。因此,我们需要使用initWithModulus来创建公钥。代码如下所示。
MYPrivateKey *pair = [[MYKeychain defaultKeychain] generateRSAKeyPairOfSize: 2048];
MYPublicKey *pub = pair.publicKey;
NSData * outModulus;
unsigned outExponent;
[pub getModulus:&outModulus exponent:&outExponent];
MYPublicKey *serverKey = [[MYPublicKey alloc] initWithModulus: outModulus exponent: outExponent];
NSString *tmpStr = @"test!";
NSData *tmpData = [tmpStr dataUsingEncoding: NSASCIIStringEncoding];
NSData *crypted = [serverKey rawEncryptData: tmpData];
NSData *crypted2 = [pub rawEncryptData: tmpData]; 为了进行测试,我使用initWithModulus创建了一个公钥。然后使用原始密钥和新密钥对相同的数据进行加密。但是两个加密数据的长度是不同的。我该怎么做呢?
发布于 2011-05-31 00:45:29
不匹配的长度是什么?当我运行这段代码(在iOS 4模拟器中)时,它可以工作,加密数据的长度是256字节。
如果您尝试使用原始私钥加密,然后使用重构的公钥解密,是否有效?
https://stackoverflow.com/questions/6160837
复制相似问题