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. Segment-Based stereo matching

    首先代码实现是根据"Segment-Based Stereo Matching Using Belief Propogation and Self-Adapting Dissimilarit ...

  2. 【windows】跑大型程序时不要休眠和睡眠

    win10系统. 为了节能,长时间没有操作操作系统会自动进入休眠模式. 先前设定了"控制面板\硬件和声音\电源选项\编辑计划设置",都设定为"从不",结果不起作 ...

  3. 【BZOJ-2725】故乡的梦 Dijsktra + Tarjan + Dinic + BFS + 堆

    2725: [Violet 6]故乡的梦 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 502  Solved: 173[Submit][Status ...

  4. Hadoop的RPC分析

    一.基础知识 原理 http://www.cnblogs.com/edisonchou/p/4285817.html,这个谢了一些rpc与hadoop的例子. 用到了java的动态代理,服务端实现一个 ...

  5. C++开发的基于UDP协议的聊天工具

    项目相关地址 源码:https://github.com/easonjim/UDPChat bug提交:https://github.com/easonjim/UDPChat/issues

  6. Bzoj2007 [Noi2010]海拔

    Time Limit: 20 Sec  Memory Limit: 552 MB Submit: 2380  Solved: 1130 Description YT市是一个规划良好的城市,城市被东西向 ...

  7. FT232RL变砖之后

    FT232RL是个是神奇的片子,说万能可能有些夸张,但是...总之就是FTDIChip这个神奇的公司基于类似的技术,做了很多好用的产品,包括转IIC啦,转SPI啦,密码狗啦之类的.是个很有用的工具就对 ...

  8. Arrya数组添加过滤条件

    var arr = new Array(); arr.push(); arr.push(); arr.push(); var rs = arr.filter(function (value,index ...

  9. Solution: Win 10 和 Ubuntu 16.04 LTS双系统, Win 10 不能从grub启动

    今年2月份在一台装了Windows的机器上装了Unbuntu 14.04 LTS (双系统, dual-boot, 现已升级到 16.04 LTS). 然而开机时要从grub启动 Windows (选 ...

  10. java连接数据源-读取tomcat数据源配置

    读取数据源配置,获取连接 1.配置数据源 D:\apache-tomcat-7.0.70\conf\context.xml <Resource name="jdbc/news" ...