技术上这应该工作,虽然我从来没有测试过它,两种方法都使用相同的专门格式。
使用我的已验证加密example加密。
//use your secret data you want to encrypt instead.
String secretMessage = "Message";
var rnCryptorHeader = new Byte[]{
2, //RNCryptor Format version 2
0 //RNCryptor Uses password
};
//encryptedString is base64 encoded
var encryptedString = AESThenHMAC.SimpleEncryptWithPassword(secretMessage,
password:"1234567891011",
nonSecretPayload:rnCryptorHeader);
然后解密使用RNCryptor和NSData+Base64为IOS
//This is the encrypted data passed from .net
NSString *encryptedString = @"AgE8C9E7gsfyOAmSotIOgyLQ0O6mdcuMXXjN/iZa3azym4KVWZAkfykIP6mqMt/qkpfftdB3XQhMkoxtQEM+rA0iHxOvZiNlmA2KJtg6BOnmlg==";
NSData *encryptedData = [NSData dataFromBase64String: encryptedString];
NSError *error;
NSData *decryptedData = [RNDecryptor decryptData:encryptedData
withPassword:@"1234567891011"
error:&error];
NSString *secretMessage = [[[NSString alloc] initWithData:decryptedData
encoding:NSUTF8StringEncoding] autorelease];
既然你不处理字符串,并直接处理的字节数,只是删除Base64和utf8编码/从这个objective-解码c例子和链接的c#例子,一旦你确定这是工作。
那么它返回哪个错误? – 2013-05-06 11:56:20
它说'错误域= CommonCryptoErrorDomain代码= -4304“解码错误”UserInfo = 0x127356c0 {NSLocalizedFailureReason =输入数据没有正确解码或解密,NSLocalizedDescription =解码错误' – nath 2013-05-06 12:17:12
@ganuke不要张贴重要信息作为评论。请编辑您的问题并添加错误。 – 2013-05-06 12:47:54