浅谈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

  • 加密
  1. touch 123.txt
  2. base64 123.txt -o abc.txt

  • 解密
  1. 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个字符
    不能反算
    数据摘要,数据的一个部分(信息指纹)

暂无评论,快来发表第一条评论吧