如何将加密的字符串从iOS发送到.net

时间:2016-07-14 11:05:57

标签: ios objective-c .net encryption aes

我正在使用以下代码进行AES加密,

NSString *encryptedString =  [AESCrypt encrypt:@"str" password:@"password"];

在.net服务器中未正确解码相同的字符串。在.net服务器中使用的代码如下,

AesEncryption = new RijndaelManaged();
AesEncryption.KeySize = 256;
AesEncryption.BlockSize = 128;
AesEncryption.Mode = CipherMode.CBC;
AesEncryption.Padding = PaddingMode.PKCS7;
string keyStr = "cGFWDwzc3dvcmQAAAAAAwzc3==";
string ivStr = "aEdcGFzc3dvcmQwzc3AvcmQAAAAA==";
byte[] ivArr = Convert.FromBase64String(keyStr);
byte[] keyArr = Convert.FromBase64String(ivStr);
AesEncryption.IV = ivArr;
AesEncryption.Key = keyArr;

你可以帮我解决这个问题。

4 个答案:

答案 0 :(得分:0)

您是否尝试使用以下EncodeToPercentEscapeString代码来加密字符串。

-(NSString *) encodeToPercentEscapeString
{
    return (__bridge_transfer NSString *) CFURLCreateStringByReplacingPercentEscapes(NULL,
                                                                            (CFStringRef) self,
                                                                            ((CFStringRef) @" !*'();:@&=+$,/?%#[]"));
}

NSString *password = @"password_123";
NSString *encryptString = [password encodeToPercentEscapeString];

答案 1 :(得分:0)

我们在iOS中提供AES,SHA,MDM5等加密技术来加密数据/字符串,以确保数据传输的安全性,

特别是我更喜欢使用AES 256加密,您可以按照教程对URL中的字符串进行加密:http://robnapier.net/aes-commoncrypto

加密字符串后,可以使用Web服务将其发送到.net / back端。

要使用网络服务将数据发送到.net,问题中包含3个声誉的答案:Send parameters to a web service将对您有所帮助。

答案 2 :(得分:0)

对于初学者,你混合了iv和key:

                                        VVVVVV
byte[] ivArr = Convert.FromBase64String(keyStr);
byte[] keyArr = Convert.FromBase64String(ivStr);
                                         ^^^^^^

答案 3 :(得分:0)

使用以下链接:添加iOS文件并实现头文件中提供的文件,并要求.Net开发人员使用相同的文件。

https://github.com/Pakhee/Cross-platform-AES-encryption