【发布时间】:2014-06-22 19:07:50
【问题描述】:
如何在 Objectice -C 中将加密数据作为字符串而不是 NSData 对象获取? 我需要将此加密文本发送到 >net 方法,解密过程是 .Net 代码中的句柄。 或者任何人都可以帮助我在 iOS 中加密文本并在 >net 中解密?
从评论中添加 - Zaph
我正在使用此代码:
StringEncryption *crypto = [[StringEncryption alloc] init];
NSData *_secretData = [SearchKey dataUsingEncoding:NSUTF8StringEncoding];
CCOptions padding = kCCOptionPKCS7Padding;
NSData *key = [_key dataUsingEncoding:NSUTF8StringEncoding];
NSData *encryptedData = [crypto encrypt:_secretData key:key padding:&padding];
我需要将 encryptedData 发送到 .Net。但是我不知道如何将 NSData 发送到 .Net 方法,所以我尝试将这个 encryptedData 转换为 NSString,不幸的是它给了我零。我尝试使用 base64EncodedStringWithOptions,它在我解密时也会出错。
【问题讨论】:
-
当然,这里有帮助。写代码不是。学习,研究,写你能写的最好的。如果它不起作用,请返回此处并提供问题代码并提供帮助。
-
数据加密产生 8 位字节,而不是 ASCII 字符。因此需要一些编码,通常是 Base64。
-
加密数据必须按 8 位字节处理,而不是常规字符。如果您试图将数据视为字符,则不可避免地会破坏它并且它不会破译。如果需要字符串进行传输,将 8 位字节编码为 Base64。
-
什么是 StringEncryption 类?什么 .new 类?没有显示的是模式,如果 CBC(它应该使用 CBC 移动),iv 和密钥长度。密钥不应该是字符串(密码)并且密钥应该是正确的长度。那么这些东西在 StringEncryption 和 .net 中是如何处理的呢?