博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
base64 加密
阅读量:5359 次
发布时间:2019-06-15

本文共 1424 字,大约阅读时间需要 4 分钟。

Base64

参考网站:

简介

  • 是网络上使用最广泛的编码系统,能够将任何二进制数据,转换成只有 65 个字符组成的文本文件
  • a~z,A~Z,0~9,+,/,=
  • Base 64 编码后的结果能够反算,不够安全
  • Base 64 是所有现代加密算法的基础算法

终端命令

# 将 10.jpg 进行 base64 编码,生成 10.txt 文件

$ base64 10.jpg -o 10.txt

 

# 将 10.txt 解码生成 1.jpg 文件

$ base64 -D 10.txt -o 1.jpg

 

# 将字符串 Man 进行 base64 编码

$ echo -n "Man" | base64

 

# 将字符串 TWFu 解码

$ echo -n "TWFu" | base64 -D

代码实现

///  BASE 64 编码

- (NSString *)base64Encode:(NSString *)string {

    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

 

    return [data base64EncodedStringWithOptions:0];

}

 

///  BASE 64 解码

- (NSString *)base64Decode:(NSString *)string {

    NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:0];

 

    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

}

保存 & 加载用户信息

///  保存用户信息

- (void)saveUserInfo {

 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

 

    // iOS 8.0 会直接写入沙盒,无需再使用 `[defaults synchronize];`

    [defaults setObject:self.username forKey:HMUsernameKey];

 

    NSString *pwd = [self base64Encode:self.pwd];

    [defaults setObject:pwd forKey:HMUserPasswordKey];

}

 

///  加载用户下信息

- (void)loadUserInfo {

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

 

    self.usernameText.text = [defaults stringForKey:HMUsernameKey];

    self.pwdText.text = [self base64Decode:[defaults stringForKey:HMUserPasswordKey]];

}

存在的问题

  1. 使用 Base64 不能直接看到用户密码的明文
  2. 但是 Base64 的算法是公开的,并且算法可逆,安全性并不好

转载于:https://www.cnblogs.com/fakeCoder/p/5093782.html

你可能感兴趣的文章
面向对象的程序设计
查看>>
a标签添加点击事件
查看>>
Context.startActivity出现AndroidRuntimeException
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
response和request
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
回到顶部浮窗设计
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
$ 一步一步学Matlab(3)——Matlab中的数据类型
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>