技術上這應該工作,雖然我從來沒有測試過它,兩種方法都使用相同的專門格式。
使用我的已驗證加密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