我们正在使用此代码在iPhone上使用Objective-C加密:加密在Objective-C /解密在Ruby中使用任何
- (NSMutableData*) EncryptAES: (NSString *) key
{
char keyPtr[kCCKeySizeAES128+1];
bzero(keyPtr, sizeof(keyPtr));
[key getCString: keyPtr maxLength: sizeof(keyPtr) encoding: NSUTF8StringEncoding];
size_t numBytesEncrypted = 0;
NSUInteger dataLength = [self length];
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc(bufferSize);
NSMutableData *output = [[NSData alloc] init];
CCCryptorStatus result = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES128,
NULL,
[self mutableBytes], [self length],
buffer, bufferSize,
&numBytesEncrypted);
output = [NSMutableData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
if(result == kCCSuccess)
{
return output;
}
return NULL;
}
,并试图解密在Ruby中使用OpenSSL像这样:
aes = OpenSSL::Cipher::Cipher.new('AES-128-CBC')
aes.decrypt
aes.padding = 1
aes.iv = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].pack('c*')
aes.key = key
result = aes.update(d) + aes.final
我愿意使用任何红宝石宝石。我可以控制双方,但是我一直无法使用EzCrypto,openssl或crypt。
任何人都知道如何让这些一起工作?
我该如何证明这个加密/解密工作,在[link](http://www.tools4noobs.com/online_tools/decrypt/)工具中在线证明?因为当我用文字3o4ARWOxwmLEPgq3SJ3A2ws7sUSxMvWSKbbs + oABsOcywk + 9qPBoDjhLAfAW/n28pbnsT2w5QMSye6pz3Lz8xmg5BYL8HdfKwbS9EpTbaUc =“火蜥蜴”为重点,和方法的Rijndael-128 CBC尝试,它doesn't显示正确解密 – Evaristoyok 2012-04-10 18:29:18
好,我做到了,但是当我在PHP与解密你给的代码,大部分时间都是活的字符垃圾,在php中它看起来像是正方形[] – Evaristoyok 2012-04-10 21:10:29