項目中遇到將OC數據對象類型轉化字符類型,然后進行MD5加密的技術流程,在轉化字符數組到字符加密過程中遇到一些問題。
問題
轉化后的字符進行md5加密,出現與服務器加密結果不匹配的情況
分析
在對代碼進行一些分析后發現,在轉化后的字符串中出現如下情況
即,在轉化后的字符中出現了""轉義字符串,導致md5加密結果不同。
需要注意的是在向服務器提交的數據中如果包含轉義符一般是不需要做處理的,java等語言會自行在轉字符為對象的時候處理掉轉移符。
結論
在使用OC進行類似的字符操作時,應該提前注意到是否產生了轉移符並處理掉。
方法
for (NSInteger i = 0; i < tempString.length; i++) {
NSString *character = [tempString substringWithRange:NSMakeRange(i, 1)];
if ([character isEqualToString:@"\\"]) {
[tempString deleteCharactersInRange:NSMakeRange(i, 1)];
}
}