关于加密解密

1.base64:
1>严格的说 base64 并不算是加密,只是一种编码的算法, base64 无论是加密还是解密,都是直接操作二进制数据,系统中提供了关于 base64的加密解密的方法,都是以 base64 开头
2>base64可以将任意的二进制数据(例如图片/视频/文件等的二进制数据)编码成字符串,在网络上传输,
3>base64编码后的数据由a-z,A-Z,/ + =这些符号表示
4>base64编码之后数据会变大

2.加密的要素:算法和秘钥,算法一般是公开的,需要做的是保护秘钥的安全
1>对称加密算法:
加密解密用的都是相同的秘钥,
速度快,适合对大数据加密(例如视频)
典型的算法: DES 3DES AES

2>非对称加密算法:
算法公开,可逆的加密算法
用公钥加密,用私钥解密, (也可以用私钥加密,用公钥解密)
速度慢,适合对小数据加密,但是更加安全
典型的算法: RSA

3>普遍的加密方法:
原始数据用对称加密,在使用 非对称加密 将 对称加密的密钥 进行加密,然后在从网络上传输

4>散列算法:
散列算法经常用来给密码进行加密,(防止后台工作人员窃密)
不可逆加密: MD5 / SHA1 / SHA256 / SHA512

5>MD5 加密后是32字节
MD5虽然是不可逆的算法,(但是可以暴力破解,解决的办法是加盐)
MD5加盐:原密码+一个复杂的字符串,然后在进行 MD5运算(复杂程度还不够)
HMAC:原密码+一个字符串,进行 MD5运算,将运算的结果+原密码在进行 MD5加密,(从网络截取数据,并不破解,直接发送给服务器,也可以达到解密的效果,解决办法+时间标识)
MD5加时间戳:
将一个字符串,进行 MD5加密计算,得到一个 MD5值
把原密码和之前生成的 MD5值,再进行 HMAC加密
从服务器获取当前时间到分钟的字符串
将第二部步产生的HMAC 值+时间 和第一步产生的 MD5值进行HMAC加密

6>钥匙串
将密码保存到本地,不能保存原文,需要进行加密处理,以防沙盒文件漏,通过系统提供的钥匙串功能,可以在本地保存密码,系统使用 AES 的方式对密码进行加密
使用SSKeychain 框架进行钥匙串操作

7>ECB 和 CBC 只是加密方式并不是加密算法,传统的 AES 和 DES 都支持这两种方式
ECB: 电子密码本 将要加密的数据分块,分别加密,数据块的加密过程相互独立,互不影响.例如,相同的数据块加密结果是相同的
CBC: 密码链条 将要加密的数据分块,分别加密,后加密的数据块依赖于前面的加密结果.例如,相同的数据块加密结果是不同的

8>DES/3DES/AES
DES:数据加密标准(用的很少因为强度不够)
3DES:使用3个密钥,对相同的数据执行3次加密,强度增强(维护密钥比较麻烦)
AES:高级加密标准(目前美国国家安全局,苹果钥匙串使用的都是 AES)

9>RSA
非对称加密
算法强度复杂,加密依赖于算法与密钥
加密解密速度慢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 2,718评论 0 6
  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 11,587评论 5 29
  • 首先罗列一些知识点: 1.加密算法通常分为对称性加密算法和非对称性加密算法:对于对称性加密算法,信息接收双方都需事...
    JonesCxy阅读 1,434评论 2 4
  • 1.数据安全 01 攻城利器:Charles(公司中一般都使用该工具来抓包,并做网络测试) 注意:Charles在...
    Lucky丶晴阅读 1,469评论 0 9
  • 1、装修怎么弄啊?壁纸风格选啥样的啊? 装修风格应该偏居家舒适的感觉。用主题房会更吸引人。例如:hello Kit...
    夜猫子x景阅读 226评论 0 1