美文网首页
iOS几种加密方法

iOS几种加密方法

作者: 41c48b8df394 | 来源:发表于2017-07-07 15:44 被阅读22次

    1.对称加密的话用AES最好,苹果系统,美国安全局,RSA中的对称加密都是同的AES加密

    1.用户密码本地化的话,建议使用钥匙串加密。使用第三方SSkeychain,
    2.一些简单又机密的数据可以AES加密

    1.base64加密

    base64编码是现代密码学的基础
    基本原理:
    1.原本的8个bit一组表示数据,改为6个bit一组表示数据,不足的部分补零,每两个0用一个=表示;

    //        将数据进行加密
    //        获取需要加密的二进制数据
            NSData *data = [NSData dataWithContentsOfFile:@"1221211212"];
            
            NSData *base64Data = [data base64EncodedDataWithOptions:0];
            //将加密后的文件存储到桌面
            [base64Data writeToFile:@"/Users/wangpengfei/Desktop/123"  atomically:YES];
            
            //解密
            //获取加密后的文件
            NSData *base64DATA = [NSData dataWithContentsOfFile:@"/Users/wangpengfei/Desktop/123"];
            //解密加密后的二进制数据
            NSData *baseData = [[NSData alloc]initWithBase64EncodedData:base64DATA options:0];
            
    
    

    post加密

    token值介绍

    token:登录令牌,利用token值来判断用户的登录状态,类似于MD5加密之后的长字符串,用户登录成功之后,在服务器端会根据用户信息生成一个唯一的值,这个值就是token值。
    基本使用:
    1.在服务器端会保存这个token值,以后利用这个token来检索对应的用户信息,并且判断用户的登录状态;
    2.用户登录成功之后,服务器会将生成的token值返回给客户端,在客户端也会保存这个token值。
    3.以后客户端在发送新的网络请求的时候,会默认自动附带这个token值。服务器拿到客户端传递的token值跟保存在数据库的token值对比,以此判断用户的身份。

    3.MD5加密

    把一个任意长度的字节串变换成一定长度的十六进制的大整数。
    注意,字符串的转换过程是不可逆的,不能通过加密结果,反向推导内容基本介绍
    需要导入第三方框架:NSString+Hash

    MD5特点:

    1.压缩性:任意长度的数据,算出的MD5值长度都是固定的。
    2.容易计算:从源数据计算出来的MD5值很容易;
    3.抗修改性:对原数据进行任何改动,哪怕只修改一个字节,所得到的MD5值都有很大区别;
    4.弱抗碰撞:已有原数据和其MD5值,想找到一个具有相同MD5值的数据是非常困难的;
    5.强抗碰撞:想找到两个不同数据,使他们具有相同的MD5值是非常困难的。

    MD5应用:
    一致性验证:MD5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要,就像每个人都有独一无二的指纹,MD5对任何文件产生一个独一无二的数字指纹。
    利用MD5来进行文件校验,被大量应用在软件下载站,论坛数据库,系统文件安全等方面

    时间戳密码

    基本介绍:
    动态密码:相同的密码明文+相同的加密算法->英文每次登录时间都不同,所以计算出的结果也都不相同,可以充分保证密码的安全性。
    服务器会计算两个时间值,当期时间和前一分钟的时间(比如第59秒发送的网络请求一秒钟后服务器收到并作出响应,这时服务器当前时间比客户端发送时间晚一分钟,仍然能够判断准确的值)

    钥匙串访问

    基本介绍:
    1.苹果7.0.3版本以后公布钥匙串访问的SDK.钥匙串访问接口是纯C语言的。
    2.钥匙串使用AES 256加密算法,能够保证用户密码的安全;
    3.钥匙串访问的第三方框架SSKeychain,是对C语言框架的封装。
    4.钥匙串访问的密码保存在哪里?只有苹果才知道

    指纹识别

    简单介绍
    1.指纹识别功能是ipone 5S之后推出的SDK是iOS8推出
    需要导入框架#import <LocalAuthentication/LocalAuthentication.h>

    2.用base64编码之后,数据长度会变大,增加大约1/3左右。(8-6)/6可进行反向解密

    相关文章

      网友评论

          本文标题:iOS几种加密方法

          本文链接:https://www.haomeiwen.com/subject/njnlhxtx.html