如何将 iOS 中的加密字符串发送到 .net
How to send the encrypted string from iOS to .net
我使用下面的代码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;
你能帮我解决这个问题吗?
您是否尝试使用以下代码使用 EncodeToPercentEscapeString 来加密您的字符串。
-(NSString *) encodeToPercentEscapeString
{
return (__bridge_transfer NSString *) CFURLCreateStringByReplacingPercentEscapes(NULL,
(CFStringRef) self,
((CFStringRef) @" !*'();:@&=+$,/?%#[]"));
}
NSString *password = @"password_123";
NSString *encryptString = [password encodeToPercentEscapeString];
我们在 iOS 中确实有 AES 、 SHA 、 MDM5 等加密技术来加密 data/strings 以确保空中传输数据的安全性,
具体来说,我更喜欢使用 AES 256 加密,您可以按照 URL 中给出的字符串加密教程进行操作:http://robnapier.net/aes-commoncrypto
加密字符串后,您可以使用网络服务将其发送到 .net/ 后端。
要使用 Web 服务将数据发送到 .net,此处问题中有 3 个信誉的答案:Send parameters to a web service 将对您有所帮助。
首先,您混淆了 iv 和密钥:
VVVVVV
byte[] ivArr = Convert.FromBase64String(keyStr);
byte[] keyArr = Convert.FromBase64String(ivStr);
^^^^^^
使用以下 link:添加 iOS 文件并实现头文件中提供的相同内容,并要求您的 .Net 开发人员进行相同的工作。
我使用下面的代码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;
你能帮我解决这个问题吗?
您是否尝试使用以下代码使用 EncodeToPercentEscapeString 来加密您的字符串。
-(NSString *) encodeToPercentEscapeString
{
return (__bridge_transfer NSString *) CFURLCreateStringByReplacingPercentEscapes(NULL,
(CFStringRef) self,
((CFStringRef) @" !*'();:@&=+$,/?%#[]"));
}
NSString *password = @"password_123";
NSString *encryptString = [password encodeToPercentEscapeString];
我们在 iOS 中确实有 AES 、 SHA 、 MDM5 等加密技术来加密 data/strings 以确保空中传输数据的安全性,
具体来说,我更喜欢使用 AES 256 加密,您可以按照 URL 中给出的字符串加密教程进行操作:http://robnapier.net/aes-commoncrypto
加密字符串后,您可以使用网络服务将其发送到 .net/ 后端。
要使用 Web 服务将数据发送到 .net,此处问题中有 3 个信誉的答案:Send parameters to a web service 将对您有所帮助。
首先,您混淆了 iv 和密钥:
VVVVVV
byte[] ivArr = Convert.FromBase64String(keyStr);
byte[] keyArr = Convert.FromBase64String(ivStr);
^^^^^^
使用以下 link:添加 iOS 文件并实现头文件中提供的相同内容,并要求您的 .Net 开发人员进行相同的工作。