使用AES在php中加密,并用objective-c解密
从AES for iphone下载AES库在不同平台进行AES加密,并使用Base64进行编码,结果有可能不同,但解密之后会一样,所以不要因为在2个平台加密结果不一样而认为自己错了。。。
php加密解密:
<?php$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);$key = 'a16byteslongkey!a16byteslongkey!';$plaintext = "iphone";$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_ECB);$base64encoded_ciphertext = base64_encode($ciphertext);echo "ciphertext: ".$base64encoded_ciphertext."<br/>";$plaintext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($base64encoded_ciphertext), MCRYPT_MODE_ECB);echo "plaintext: ".$plaintext."<br/>";$base64encoded_ciphertext ="I3chV+E2XUHeLCcJAhBaJQ==";$plaintext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($base64encoded_ciphertext), MCRYPT_MODE_ECB);echo "plaintext: ".trim($plaintext);?>
iphone加密解密 #import "NSString+AESCrypt.h"NSString *key = @"a16byteslongkey!a16byteslongkey!";NSString *plaintext = @"iphone";NSString *ciphertext = ;NSLog(@"ciphertext: %@", ciphertext);plaintext = ;NSLog(@"plaintext: %@", plaintext);
以下是一个在php中加密,然后在iphone中解密的例子
php 代码:
<?php$key = "test_AES_key";$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);$key = md5($key);$plaintext = "ksfe";$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_ECB);$base64encoded_ciphertext = base64_encode($ciphertext);echo $base64encoded_ciphertext."<br/>";//$plaintext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($base64encoded_ciphertext), MCRYPT_MODE_ECB);//echo "plaintext: ".$plaintext."<br/>";?>
iphone 代码:
-(NSString *)md5:(NSString *)str { const char *cStr = ; unsigned char result; CC_MD5( cStr, strlen(cStr), result ); return , result, result, result, result, result, result, result, result, result, result, result, result, result, result, result ]; }#import "NSString+AESCrypt.h"NSString *strKey = @"test_AES_key";NSData *chipherData = ];NSString *chipherText = [ initWithData: chipherData encoding: NSUTF8StringEncoding];NSString *plainText = ];NSLog(@"plainText: %@", plainText);
页:
[1]