浅谈iOS中的base64加密解密
全栈老韩
全栈工程师,擅长iOS App开发、前端(vue、react、nuxt、小程序&Taro)开发、Flutter、React Native、后端(midwayjs、golang、express、koa)开发、docker容器、seo优化等。
密码学
base64
字符其实有65种,可以将任意二进制数据进行编码,编码成为有65中字符组成的文本文件。
0-9, a-z A-Z, + / =
Example
- 加密
- touch 123.txt
- base64 123.txt -o abc.txt
- 解密
- base64 abc.txt -o 234.txt -D
图片也可以,但是修改图片的名称、后缀名,都不能改变加密的结果,因为其二进制数据没有发生变化。
字符串的加解密
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"%@", [self base64Endcode:@"A"]);
NSLog(@"%@", [self base64Decode:@"QQ=="]);
}
- (NSString *)base64Endcode:(NSString *)string {
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
return [data base64EncodedStringWithOptions:0];
}
- (NSString *)base64Decode:(NSString *)string {
NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:0];
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
-
对称加密
算法:DES, 3DES, AES(高级密码标准,美国国家安全局使用的) -
非对称加密
算法:RSA -
数学算法:
-
哈希(散列)函数:
算法公开
对相同的数据加密,结果是一样的
对不同的数据,MD5得到的结果都是32个字符
不能反算
数据摘要,数据的一个部分(信息指纹)
发布于2024-02-02 10:45:02
浏览量51·
暂无评论,快来发表第一条评论吧