md5和base64加密解密
2016-01-05 00:00
197 查看
摘要: md5和AES的加密解密方式安全性相比base64要高,AES需要对应的key才能取出加密内容 md5一般只加密 不解密 网上有解密的网站
新建的类(OS X 里的cocoa class)里自定义方法 继承 NSString(Extend)
//
// main.m
// MD5
//
// Created by dc008 on 16/1/5.
// Copyright © 2016年 lin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+Extend.h"
int main() {
[@"习近平" sayHi];
NSLog(@"%@",[@"崔晓宇" md5]);
//IOS7 以后提供了 base64 的转码方式
//编码
NSString *password = @"cxy";
NSData *passwordData = [password dataUsingEncoding:NSUTF8StringEncoding];
NSString *result = [passwordData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
NSLog(@"%@",result);
//解码
NSData *decodeData = [[NSData alloc]initWithBase64EncodedString:result options:0];
NSString *decodeStr = [[NSString alloc]initWithData:decodeData encoding:NSASCIIStringEncoding];
NSLog(@"%@",decodeStr);
return 0;
}
//
// NSString+Extend.h
// MD5
//
// Created by dc008 on 16/1/5.
// Copyright © 2016年 lin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSString(Extend)
- (void)sayHi;
- (NSString *)md5;
@end
//
// NSString+Extend.m
// MD5
//
// Created by dc008 on 16/1/5.
// Copyright © 2016年 lin. All rights reserved.
//
#import "NSString+Extend.h"
#import <CommonCrypto/CommonCrypto.h>
@implementation NSString(Extend)
- (void)sayHi{
NSLog(@"%@ 说你好",self);
}
- (NSString *)md5{
//转换成c语言的字符串
const char *cStr = [self UTF8String];
//md5加密的结果是128位,需要开辟一个16字节的空间
unsigned char result[16];
//调用加密函数
CC_MD5(cStr, (unsigned int)strlen(cStr), result);
//通过上面这个方法获取的MD5是一个16个字符的数组,需要转变成32位的MD5值
//%02X
NSMutableString *str = [NSMutableString stringWithCapacity:10];
for (int i = 0; i < 16; i++) {
[str appendString:[NSString stringWithFormat:@"%02X",result[i]]];
}
return str;
}
@end
新建的类(OS X 里的cocoa class)里自定义方法 继承 NSString(Extend)
//
// main.m
// MD5
//
// Created by dc008 on 16/1/5.
// Copyright © 2016年 lin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+Extend.h"
int main() {
[@"习近平" sayHi];
NSLog(@"%@",[@"崔晓宇" md5]);
//IOS7 以后提供了 base64 的转码方式
//编码
NSString *password = @"cxy";
NSData *passwordData = [password dataUsingEncoding:NSUTF8StringEncoding];
NSString *result = [passwordData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
NSLog(@"%@",result);
//解码
NSData *decodeData = [[NSData alloc]initWithBase64EncodedString:result options:0];
NSString *decodeStr = [[NSString alloc]initWithData:decodeData encoding:NSASCIIStringEncoding];
NSLog(@"%@",decodeStr);
return 0;
}
//
// NSString+Extend.h
// MD5
//
// Created by dc008 on 16/1/5.
// Copyright © 2016年 lin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSString(Extend)
- (void)sayHi;
- (NSString *)md5;
@end
//
// NSString+Extend.m
// MD5
//
// Created by dc008 on 16/1/5.
// Copyright © 2016年 lin. All rights reserved.
//
#import "NSString+Extend.h"
#import <CommonCrypto/CommonCrypto.h>
@implementation NSString(Extend)
- (void)sayHi{
NSLog(@"%@ 说你好",self);
}
- (NSString *)md5{
//转换成c语言的字符串
const char *cStr = [self UTF8String];
//md5加密的结果是128位,需要开辟一个16字节的空间
unsigned char result[16];
//调用加密函数
CC_MD5(cStr, (unsigned int)strlen(cStr), result);
//通过上面这个方法获取的MD5是一个16个字符的数组,需要转变成32位的MD5值
//%02X
NSMutableString *str = [NSMutableString stringWithCapacity:10];
for (int i = 0; i < 16; i++) {
[str appendString:[NSString stringWithFormat:@"%02X",result[i]]];
}
return str;
}
@end
相关文章推荐
- IOS7原生API进行二维码条形码的扫描
- IOS 美图 滤镜效果 CIFilter和UIImagePickerController
- IOS UIDevice_设备
- ZXingObjC 开源框架 生成二维码
- myeclipse连接SQL 2012
- 文件上传
- 文件上传第二种方式
- AsyncHttpClient, RequestParams ,AsyncHttpResponseHandler三个类使用方法
- Linux 配置LNMP服务器 并配置虚拟主机
- objective-c 我的美图软件
- IOS 设备
- OObjective-c 二维码(第三方库ZXing)
- objective-c UIImagePickerController 相册视图控制器
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
- VS2013 C# .net 调试 无法加载符号 断点不命中
- pppd chat 脚本
- 2016-1-5未命名文件
- oracle回顾复习
- 重新理解忽略的for循环i变量
- js中如何传递this对象