我正在使用以下代码进行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;
你可以帮我解决这个问题。
答案 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开发人员使用相同的文件。