Ios 删除\x01、\x02…等。解码3DES后从NSString开始
例如: 原文:“123456” 3DES编码文本:“VjARiuJ9BeE=” 解码3DES:“123456\x02\x02” 如何删除\x01、\x02…等字符 NSLog知道如何避免这些字符,但在变量中仍然有\x01、\02…等 在python中,have属性string.printable可以避免这些字符 在iOS中,如何避免Ios 删除\x01、\x02…等。解码3DES后从NSString开始,ios,objective-c,Ios,Objective C,例如: 原文:“123456” 3DES编码文本:“VjARiuJ9BeE=” 解码3DES:“123456\x02\x02” 如何删除\x01、\x02…等字符 NSLog知道如何避免这些字符,但在变量中仍然有\x01、\02…等 在python中,have属性string.printable可以避免这些字符 在iOS中,如何避免 谢谢。试试这段代码,它能完美解码 [self htmlDecode:@"123456\x02\x02"]; -(NSString *)htmlDecode:(N
谢谢。试试这段代码,它能完美解码
[self htmlDecode:@"123456\x02\x02"];
-(NSString *)htmlDecode:(NSString *)htmlString
{
NSData* stringData = [htmlString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* options = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType};
NSAttributedString* decodedAttributedString = [[NSAttributedString alloc] initWithData:stringData options:options documentAttributes:NULL error:NULL];
NSString* decodedString = [decodedAttributedString string];
NSLog(@"%@",decodedString);
return decodedString;
}
以前
修理后
ccStatus = CCCrypt(kCCDecrypt,
kCCAlgorithm3DES,
kCCOptionPKCS7Padding,
vkey,
kCCKeySize3DES,
vinitVec,
vplainText,
plainTextBufferSize,
(void *)bufferPtr,
bufferPtrSize,
&movedBytes);
我解决了这个问题,PCKS7Padding默认为CBC模式,无需在代码中添加&kCCModeCBC
在代码中删除&kCCModeCBC后,我可以在不使用\0x1、\0x2…等的情况下获得真实文本
希望这能帮助有相同问题的人。或者,如果需要,您可以将AES与CommonCrypto库一起使用
ccStatus = CCCrypt(kCCDecrypt,
kCCAlgorithm3DES,
kCCOptionPKCS7Padding,
vkey,
kCCKeySize3DES,
vinitVec,
vplainText,
plainTextBufferSize,
(void *)bufferPtr,
bufferPtrSize,
&movedBytes);