在我的应用程序中,我从 xml 获取数据,数据已加密,我需要解密收到的 nsstring,
UserName = @"QEjbHvzPjk+YuLDVPUJuEA==";
我需要将此 nsstring 解密为常规格式,我搜索并找到 aes ,但它没有进行任何更改,
NSString* msg = [FBEncryptorAES decryptBase64String:UserName
keyString:@"01234567890abcdefghijklmnopqrstuvwxyz"];
if (msg)
{
UserName = msg;
NSLog(@"decrypted: %@", msg);
} else
{
UserName = @"(failed to decrypt)";
}
我如何解密上面的 nsstring,提前致谢。
该字符串不仅经过 AES 加密,而且经过 Base64 编码。结尾的“==”是典型的 base64 填充。此外,AES 加密会生成数据字节,而不是 ASCII 字符,并且输出是块大小的倍数。加密结果通常采用 Base64 编码,因此它是 ASCII,可以包含在 XML 中。
对于 iOS 7,NSData 有多种 Base64 API 方法。也许你想要的是:
- (id)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options
Example:
NSString *userName = @"QEjbHvzPjk+YuLDVPUJuEA==";
NSData *data = [[NSData alloc] initWithBase64EncodedString:userName options:0];
NSLog(@"data: %@", data);
NSLog 输出:
数据:
数据可能是 AES 加密的,它是块长度的倍数,如果是这样,您将需要密钥以及有关填充、模式和可能的 iv 的信息。
请注意,FBEncryptorAES
类方法encryptedBase64String
确实接受 Base64 输入,但解密密钥字符串可疑,并且由于方法和可能的原因,加密可能与此解密方法不匹配。所以FBEncryptorAES
类可能不是你所需要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)