最近跟加密杠上了,这里先说说base64加密,后续会继续增加各种加密方式
1、base64 + “KEY” 异或加密
简单的base64加密这里就不介绍了,主要都是使用第三方库“CTMBase64” ,一段代码搞定
[string base64EncodedString];
重点的是在明文添加一个“KEY”字符串并进行异或运算,得出另外一个字符串,然后再进行base64加密。因为base64加密是可逆的(MD5加密不可逆),很容易就泄漏密码,不安全,所以一般都是跟后台商量好一定的法则,在原来的基础上添加或者重新排序的方法对明文进行变更...
代码如下:
#pragma mark - base64 + KEY 加密
- (NSString *)encodeString:(NSString *)sourceString withKey:(NSString *)keyString{
if ([sourceString isEqualToString:@""]||[keyString isEqualToString:@""]) {
return @"";
}
//密码转字节数组
NSData *source = [sourceString dataUsingEncoding:NSUTF8StringEncoding];
Byte *sourceBytes = (Byte *)[source bytes];
//KEY转字节数组
NSData *key = [keyString dataUsingEncoding:NSUTF8StringEncoding];
Byte *keyBytes = (Byte *)[key bytes];
//异或运算
int i=0;
int j=0;
for (; i<source.length; j++) {
if (j==key.length){
j=0;
}
sourceBytes[i] = sourceBytes[i]^keyBytes[j];
i++;
}
//对密文与KEY异活运算得出的字符串进行base64加密
NSData *resultData = [[NSData alloc]initWithBytes:sourceBytes length:source.length];
return [resultData base64EncodedString];
}
特别感谢以下博客的内容:
http://blog.csdn.net/wscqqlucy/article/details/8268412