PHP加密和objective-c解密
我必须在php服务器上生成加密密钥,并将其发送到ipad应用程序进行解密 我在php服务器端所做的工作:PHP加密和objective-c解密,php,objective-c,encryption,Php,Objective C,Encryption,我必须在php服务器上生成加密密钥,并将其发送到ipad应用程序进行解密 我在php服务器端所做的工作: $iv = mcrypt_create_iv(32); $privatEencryptKey = "1111"; $data = "2222"; $encryptedData = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateEncryptKey, base64_encode($data), MCRYPT_MODE_C
$iv = mcrypt_create_iv(32);
$privatEencryptKey = "1111";
$data = "2222";
$encryptedData = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateEncryptKey, base64_encode($data), MCRYPT_MODE_CBC, $iv);
$decryptedData = base64_decode(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateEncryptkey, $encryptedData, MCRYPT_MODE_CBC, $iv));
echo base64_encode($encryptedData); //output = WT7LorzZ1EQo2BeWxawW3Q==
echo $decryptedData; // output = 2222
echo base64_encode($iv); // output = fZTj4BxWSdCYQW/scUHvx9QoiTNXmxNrGWb/n7eFkR4=
在xcode中,我导入了sercurity.framwork,并为base64(编码和解码)添加了第三方,我还使用了(CommonCryptor.h),下面是我的代码:
+ (NSData *)doCipher:(NSData *)dataIn
iv:(NSData *)iv
key:(NSData *)symmetricKey
context:(CCOperation)encryptOrDecrypt{
CCCryptorStatus ccStatus = kCCSuccess;
size_t cryptBytes = 0; // Number of bytes moved to buffer.
NSMutableData *dataOut = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES128];
ccStatus = CCCrypt( encryptOrDecrypt,
kCCAlgorithmAES128,
0,
symmetricKey.bytes,
kCCKeySizeAES128,
iv.bytes,
dataIn.bytes,
dataIn.length,
dataOut.mutableBytes,
dataOut.length,
&cryptBytes);
if (ccStatus != kCCSuccess) {
NSLog(@"CCCrypt status: %d", ccStatus);
}
dataOut.length = cryptBytes;
return dataOut;
}
+ (void) testCipher{
NSData *dataIn = [[@"WT7LorzZ1EQo2BeWxawW3Q==" base64DecodedString] dataUsingEncoding:NSUTF8StringEncoding];
NSData *key = [@"1111" dataUsingEncoding:NSUTF8StringEncoding];
NSData *iv = [[@"fZTj4BxWSdCYQW/scUHvx9QoiTNXmxNrGWb/n7eFkR4=" base64DecodedString] dataUsingEncoding:NSUTF8StringEncoding];
NSData *dataOut = [Utils doCipher:dataIn iv:iv key:key context:kCCDecrypt];
NSString* strOut = [[[NSString alloc] initWithData:dataOut
encoding:NSUTF8StringEncoding] base64DecodedString];
NSLog(@"%@", strOut);
}
我得到了strOut的零分(
请帮忙
按以下顺序提供:加密的Base64数据、解密的Base64数据、解密的字符串。提供的密钥是32位,但AES128需要128位。iv是256位,但只需要128位。谢谢Zaph,抱歉,但我是密码学领域的新手……如何生成128位密钥和iv(在PHP中用于加密)并将生成的密钥传递到objective c中,以重用它们进行解密???…我所做的是将64 key和iv echo encoded64发送到我的test page.php,并将值复制粘贴到objective c类中,解码64这些值,并在将其转换为NSData对象后将其传递给CCCrypt函数…对吗?我使用了RNCryptor iOS库,并且它工作正常给我的