如何在PHP中解密post数据
我在Objective-c中加密了一些数据,代码如下:如何在PHP中解密post数据,php,objective-c,post,encryption,Php,Objective C,Post,Encryption,我在Objective-c中加密了一些数据,代码如下: NSDictionary *jsonDic = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"key1", @"2", @"key2", nil]; SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init]; NSData *data = [jsonWriter dataWithObject:jsonDic]; [jsonWrite
NSDictionary *jsonDic = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"key1", @"2", @"key2", nil];
SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init];
NSData *data = [jsonWriter dataWithObject:jsonDic];
[jsonWriter release];
NSString *key = @"mykey";
const int len = [data length]*2 + 2048;
char* buffer = (char*)malloc(len);
memset(buffer, 0, len);
const char *iv = "12345";
size_t dataOut = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding,
[key UTF8String],
kCCKeySizeDES,
iv,
[data bytes],
[data length],
buffer,
len,
&dataOut);
NSData* retData = nil;
if(cryptStatus == kCCSuccess) {
retData = [NSData dataWithBytes:buffer length:dataOut];
}
free(buffer);
return destData;
然后调用下面的php api代码
NSString *urlString = @"http://domain/api.php";
NSMutableURLRequest *urlPost = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20];
[urlPost setHTTPMethod:@"POST"];
[urlPost setHTTPBody:data];
NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:urlPost delegate:self];
我使用以下php代码阅读post并解密:
define("KEY","mykey");
define("IV","12345");
$post_body = file_get_contents('php://input');
$dec_str = mcrypt_decrypt(MCRYPT_DES, KEY, $post_body, MCRYPT_MODE_BCB, IV);
error_log($dec_str);
但我看不到正确的结果。经过一天一夜的搜索和尝试,仍然没有发现什么问题。
提前谢谢 您有这个电话:
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
kCCAlgorithmDES,
kCCOptionPKCS7Padding,
[keyString UTF8String],
kCCKeySizeDES,
iv,
[data bytes],
[data length],
buffer,
len,
&dataOut);
那里的
keyString
变量是什么?我想你应该在那里写[key UTF8String]
) 还没有,我不知道在使用$post_body之前是否需要做任何事情。我发现这是由键入关于MCYPY_MODE_CBC到MCRYPT_MODE_BCB引起的。