iOS应用层加密相关

网络开发准则

  1. 网络开发中不允许传输用户明文隐私数据
  2. 在本地不允许保存用户明文隐私数据

替换加密

里面密码本进行替换

破解方法
蛮力攻击

利用明文和密文蛮力穷尽密钥
26个字母 的密码空间: 26*25*24…3*2*1 = 26! = 2^88

字母频率分析

根据英文常用的频率进行分析,比如英文e的使用频率13%等
56~64位:几个小时或者几天破解

对称加密算法

RC4、DES、3DES、AES128、AES256等。加解密双方密钥相同。

非对称加密算法

RSA、Elgamal等。加解密双方使用密钥对。

哈希算法

MD5(16Byte)、SHA1(20Byte)等。任意长度的信息转换成到某一固定长度的信息摘要(具有唯一性,不可逆性),主要作用是对数据数据完整性校验。

特点
  1. 算法公开
  2. 对相同的数据加密,得到的j结果都是一样的
  3. 得到的结果都是定长的
用途
  1. 加密
  2. 数据完整性验证、版权问题
  3. 搜索计算 比如百度搜索是把关键词进行md重组

用的过程中常常加盐后进行加密(在前后加一些乱的数据),不过有弊端

  1. 盐是固定的,有人知道太危险

HMAC进行补充(利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。)

缺点MD5为例

散列碰撞
因为加密的数据是定长的,一共就26^32个结果,但是加密的数据远不止这么多,很可能出现两个数据加密成一样的结果

存储本地机密数据最要用钥匙串

SSKeychain

使用之前需要把权限打开

这里写图片描述
存储密码

 //保存密码
    if (account.length >0 && pwd.length >0) {

        [SSKeychain setPassword:pwd forService:LYJLoginSeviceName account:account];
    }

获取密码:

 self.pwText.text = [SSKeychain passwordForService:LYJLoginSeviceName account:self.userText.text];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值