Base64-不重要数据的简单加密
来源:互联网 发布:在哪看淘宝自动售货 编辑:程序博客网 时间:2024/04/30 09:36
导语
最近公司要求对服务器的token等参数进行一个简单的加密,防止恶意请求。要求加密过程自定义,于是就想到了用base64,其实这不是一个加密解密的算法,其实它就是使用64个字符来对任意数据进行编码解码的,具体底层实现原理就不讨论了,它是随着iOS7推出的。
我的实现过程(可以根据公司需求自定义):
1.先编码一次
2.对编码结果的数据交换首位字符在编码一次
3.对编码结果逆序在编码一次
示例代码
+(NSString *)base64EncodedString:(NSString *)string {Base64Encoding *base64 = [[Base64Encoding alloc] init]; // 1次 NSString *encrypt1 = [base64 base64EncodedString:string]; // 交换字符串首位次序 NSString *string1 = [base64 changeStringFirsrAndLast:encrypt1]; // 2次 NSString *encrypt2 = [base64 base64EncodedString:string1]; // 交换字符串首位次序 NSString *string2 = [base64 changeStringOrder:encrypt2]; // 3次 NSString *encrypt3 = [base64 base64EncodedString:string2]; return encrypt3;}// 添加逗号- (NSString *)addSeparaedSingle:(NSString *)string { NSMutableString *mutableString = [string mutableCopy]; NSInteger cont = mutableString.length; for (int i = 0; i < cont - 1; i ++) { [mutableString insertString:@"," atIndex:2 * i + 1]; } return mutableString;}// 去掉逗号- (NSString *)removeSeparaedSingle:(NSString *)string { return [string stringByReplacingOccurrencesOfString:@"," withString:@""];}// 字符串转数组- (NSMutableArray *)stringChangeArray:(NSString *)string { NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:[string componentsSeparatedByString:@","]]; return mutableArray;}// 数组转字符串- (NSString *)arrayChangeString:(NSArray *)array { return [array componentsJoinedByString:@","];}// 字符串交换首尾- (NSString *)changeStringFirsrAndLast:(NSString *)string { NSString *str = [self addSeparaedSingle:string]; NSMutableArray *mutableArray = [self stringChangeArray:str]; NSString *temp = mutableArray[0]; mutableArray[0] = mutableArray[mutableArray.count - 1]; mutableArray[mutableArray.count - 1] = temp; NSString *arrayString = [self arrayChangeString:mutableArray]; return [self removeSeparaedSingle:arrayString];}// 字符串逆序- (NSString *)changeStringOrder:(NSString *)string { NSString *str = [self addSeparaedSingle:string]; NSMutableArray *mutableArray = [self stringChangeArray:str]; NSArray *reversedArray = [[mutableArray reverseObjectEnumerator] allObjects]; NSString *arrayString = [self arrayChangeString:reversedArray]; return [self removeSeparaedSingle:arrayString];}// 编码- (NSString *)base64EncodedString:(NSString *)string { NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; return [data base64EncodedStringWithOptions:0];}
结束语:
这个可以根据公司的要求跟后台写的好加密的规则,解密就交给后台了,方法:initWithBase64EncodedData
采用逆向规则解密即可,当然这个是极其容易被破解的,涉及敏感数据是不可使用这个方法的。
0 0
- Base64-不重要数据的简单加密
- 简单的base64加密解密
- base64加密解密c++的简单实现
- Base64 加密解密字符串的简单使用
- 数据加密 base64
- iOS开发:base64简单的加密和解密使用
- JavaScript 实现base64数据加密
- Base64数据加密与解密
- C的Base64加密
- base64的加密解密
- java的Base64加密
- Base64的加密解密
- C++中将vector<float>的数据进行base64加密存储到数据库中(内含base64源码)
- JAVA数据加密——MD5加密,SHA加密,BASE64解密,BASE64加密,HMAC加密
- Android 加密 MD5和Base64简单介绍
- BASE64 的加密与解密
- Golang实现的Base64加密
- Base64的加密与解密
- Ubuntu安装pycharm
- iOS-js与iOS的交互(基于WKWebViewJavascriptBridge第三方)
- SPI_FLASH高速读写
- iOS-解压zip
- C语言结构体(struct)常见使用方法
- Base64-不重要数据的简单加密
- 斯坦纳树(Steiner Tree)
- C语言培训_002
- iOS-自定义带抽屉效果的tabBar
- Linux操作系统下共享文件夹设置方法介绍
- nginx ssl测试
- Win10 EPLAN新建项目出现“一个内部错误的解决方法”
- java Socket实现Web服务器
- 如何开始用 C++ 写一个光栅化渲染器?