Base64

参考网站:http://zh.wikipedia.org/wiki/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 的算法是公开的,并且算法可逆,安全性并不好

base64 加密的更多相关文章

  1. android Base64 加密

    一 Base64加密 import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStre ...

  2. Js中 md5 sha1 base64 加密

    js的3中加密方式: .sha1加密,加密性高 调用: var sha = hex_sha1(str); .base64加密 调用: var b = new Base64(); var str = b ...

  3. js base64加密,后台解密

    这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...

  4. (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

    我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...

  5. Base64加密工具-iBlogs

    简易的Base64加密工具开发步骤 1.编写Java测试桩 import java.io.BufferedReader; import java.io.IOException; import java ...

  6. JS实现base64加密解密

    JS实现base64加密解密 转载自http://blog.csdn.net/fengzheng0306/archive/2006/04/25/676055.aspx 方法一: <HTML> ...

  7. 【代码笔记】iOS-3DES+Base64加密解密

    一,工程目录. 二,代码. RootViewController.m #import "RootViewController.h" #import "NSString+T ...

  8. 实现Base64加密解密

    using System; using System.Text;   namespace Common { /// <summary> /// 实现Base64加密解密 /// </ ...

  9. IOS 杂笔-10(Base64 加密)

    base64加密是可逆的,因此并不是很安全,在一些注重安全的地方很少用到,但是在普通传输中可以使用. 切忌,base64加密是不安全的. // // ViewController.m // CX-Ba ...

  10. MD5加密,Base64加密/解密,AES加密/解密

    1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBa ...

随机推荐

  1. python调用模块&函数

    一般模块是抽象的概念,按照功能划分模块,尽可能保证每个模块互相独立. 一般模块里有多个函数.当然,如果你愿意,也可以把一个几个模块写进一个大函数.对于python 模块,每个模块可以包含多个函数,但一 ...

  2. PLSQL设置显示的字符集及PLSQL的一些自身设置

    一.关于PLSQL无法正确显示中文 刚才下载安装了PLSQL Developer 9.0.0.1601 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示.经过网上查询得知这是客户 ...

  3. 【BZOJ-3653】谈笑风生 DFS序 + 可持久化线段树

    3653: 谈笑风生 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 628  Solved: 245[Submit][Status][Discuss] ...

  4. 【BZOJ-3626】LCA 树链剖分

    3626: [LNOI2014]LCA Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1428  Solved: 526[Submit][Status ...

  5. bzoj2631: tree

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  6. asp.net项目发布打包研究

    有几种思路: 1.[推荐]直接发布,然后手动打包成压缩包,需要的时候直接上传到服务器,或者在本地解压出来手动上传到虚拟空间(支持绝大多数的虚拟空间,自由度高,DZ也是采用这样的打包,FTP上传操作比较 ...

  7. 【Alpha】团队贡献分配计划

    在仔细看过邹老师的博客和一些主流公司的绩效管理考核方面的内容后,本来我们小组在讨论后决定简化Google的OKR制度,加入一些自己的元素作为我们团队的主要贡献评定制度. OKR就是“目标和关键成果”( ...

  8. 【Alpha阶段】第7.5次Scrum例会

    会议信息 时间:2016.10.31 21:30 时长:10min 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 NXT:2016.11.01 21:30 个人任务报告 姓名 今日已完成Is ...

  9. wildfly jsf 文件 上传后 可以下载 访问

    // String aa = FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath(); // lo ...

  10. python从Microsoft Excel文件中导入数据

    excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. ...