iOS 自定义加密解密——解密
来源:互联网 发布:比较好的php编辑器 编辑:程序博客网 时间:2024/06/12 00:13
#pragma mark - 解密
#pragma mark - 将十六进制转化为二进制
- (void)unlokHexStringTranslateToBinaryString:(NSString *)hexString{
NSString *binaryString=[[NSStringalloc] init];
for (int i =0; i < [hexString length]; i++) {
NSRange rage;
rage.length =1;
rage.location = i;
NSString *key = [hexStringsubstringWithRange:rage];
binaryString = [NSStringstringWithFormat:@"%@%@",binaryString,[NSStringstringWithFormat:@"%@",[self.setSecretDicobjectForKey:key]]];
}
NSLog(@"解密转化后的二进制为:\n%@",binaryString);
[selfunlokChangeBinaryString:binaryString];
}
#pragma mark - 移位(改变二进制数的某一个或某几个位)
- (void)unlokChangeBinaryString:(NSString *)binaryString{
NSMutableArray *binaryArray = [[NSMutableArrayalloc] init];
for (int i=0; i<[binaryStringlength]; i++) {
NSRange rage;
rage.length =1;
rage.location = i;
NSString *character = [binaryStringsubstringWithRange:rage];
[binaryArray addObject:character];
}
[binaryArray exchangeObjectAtIndex:0withObjectAtIndex:binaryArray.count-1];
NSString *newBinaryString =@"";
for (NSInteger i =0; i < binaryArray.count; i++) {
newBinaryString = [newBinaryString stringByAppendingFormat:@"%@",[binaryArrayobjectAtIndex:i]];
}
//newBinaryString就是移位后的数据
NSLog(@"解密移位后的二进制为:\n%@",newBinaryString);
[selfunlokBinaryStringToHexString:newBinaryString];
}
#pragma mark - 二进制转为十六进制字符串
- (void)unlokBinaryStringToHexString:(NSString *)newBinaryString{
NSString *hexString=@"";
for (int i=0; i<[newBinaryStringlength]/4; i++) {
NSRange rage;
rage.length =4;
rage.location = i*4;
NSString *key = [newBinaryStringsubstringWithRange:rage];
hexString = [NSStringstringWithFormat:@"%@%@",hexString,[NSStringstringWithFormat:@"%@",[self.removeSecretDicobjectForKey:key]]];
}
NSLog(@"解密二进制字符串转为十六进制字符串:\n%@",hexString);
[selfstringFromHexString:hexString];
}
#pragma mark - 十六进制转为普通字符串
- (void)stringFromHexString:(NSString *)hexString {//
char *fistBuffer = (char *)malloc((int)[hexStringlength] / 2 +1);
bzero(fistBuffer, [hexStringlength] / 2 +1);
for (int i =0; i < [hexString length] - 1; i +=2) {
unsignedint anInt;
NSString * hexChar = [hexStringsubstringWithRange:NSMakeRange(i,2)];
NSScanner * scanner = [[NSScanneralloc] initWithString:hexChar];
[scanner scanHexInt:&anInt];
fistBuffer[i / 2] = (char)anInt;
}
NSString *normalString = [NSStringstringWithCString:fistBufferencoding:NSUTF8StringEncoding];
NSLog(@"解密十六进制转为普通字符串:\n%@",normalString);
}
- iOS 自定义加密解密——解密
- iOS —— base64 <加密解密>
- [iOS]加密解密算法
- iOS base64 加密解密
- IOS RSA加密解密
- iOS RSA 加密解密
- IOS 加密、解密
- iOS RSA加密解密
- DES加密解密—Android IOS C#互通
- iOS数据安全—加密解密「学习总结」
- 字符串自定义加密解密 方法
- Tomcat自定义classLoader加密解密
- php 自定义加密、解密方法
- ios常见加密解密方法
- ios AES128加密解密算法
- iOS AES的加密解密
- IOS rsa加密与解密
- IOS 异或加密解密
- QT5(11) 鼠标右击菜单 键盘事件
- git-基础【2】
- 6.Libgdx扩展学习之Box2D_鼠标关节
- 将手机号中间四位隐藏
- unity绘制跟随鼠标移动的曲线
- iOS 自定义加密解密——解密
- html5中drag//drop拖曳效果的用法
- java编写ajax超简单通讯录项目(数据库为oracle)
- Iframe 和父页面交互+Iframe 的onclick()事件
- 线性筛&一般筛
- 有关于优化封装Stystem.out.println来测试
- Intel CPU 地址空间总结
- 文件检索大于某尺寸并按尺寸排序的shell命令
- iOS phoneGap的使用(二、自定义phoneGap插件)