zoukankan      html  css  js  c++  java
  • 数据安全(加密)

    一 数据安全
    1 数据本身的安全(现代密码学)
    1.1 数据保密
    1.2 数据完整性验证
    1.3 数据双向认证
    2 数据防护安全
    2.1 磁盘列阵
    2.2 数据备份
    2.3 异地容灾
     
    3 术语
    密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥(也可以根据用途来分为加密密钥和解密密钥)
     
    明文:没有进行加密,能够直接代表原文含义的信息

    密文:经过加密处理处理之后,隐藏原文含义的信息
    加密:将明文转换成密文的实施过程
    解密:将密文转换成明文的实施过程
     
    4 数据安全
    数据安全:是一种主动的包含措施,数据本身的安全必须基于可靠的加密算法与安全体系,主要是有对称算法与公开密钥密码体系两种(非对称算法),都包含了数据的加密和解密过程
    对称算法:对称密码算法有时又叫传统密码算法,是指加密密钥可以从解密密钥中推算出来,反过来也成立。
    非对称算法:对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。
    加密算法有很多种,在iOS开发当中,MD5是我们常用的摘要算法。
     
    二 MD5(Message Digest Algorithm 5)
    1 哈希算法
    哈希算法:哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。
    哈希值是一段数据唯一且极其紧凑的数值表示形式。数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。
    典型的的哈希算法有:MD2、MD4、MD5 和 SHA-1等。
    2 MD5
    2.1 MD5:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
    2.2 MD5算法具有以下特点:
    a、 压缩性:任意长度的数据,算出的MD5值长度都是固定的(16进制,32位)。
    b、容易计算:从原数据计算出MD5值很容易。
    c、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
    d、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
     
    2.3 代码实现
    2.4 小结
    哈希算法是一种摘要算法,主要作用是用来获取数据的摘要。严格意义上来说不属于加密算法(因为没有解密过程)
     
     获取字符串的MD5值比较简单,其它对象可以先转化成NSData对象再进行操作
     
     可以根据路径直接获取文件数据,也可以将对象写入文件件后获取为NSData对象
     
     iOS同样支持SHA1、base64、AES、钥匙串等方式加密数据
     
    三 钥匙串加密
    钥匙串:(英文:Keychain)是苹果公司Mac OS中的密码管理系统。它在Mac OS 8.6中和iOS7之后被导入,并且包括在了所有后续的各版本中。一个钥匙串可以包含多种类型的数据:密码(包括网站,FTP服务器,SSH帐户,网络共享,无线网络,群组软件,加密磁盘镜像等),私钥,电子证书和加密笔记等。
     
    钥匙串使用
    拷贝钥匙串类到工程中
    引入标准头文件
    生成钥匙串对象
    存储加密的数据
    获得钥匙串对象
    获取加密的数据
     
    3 钥匙串加密
    苹果 iOS 和 Mac OS X 系统自带了一套敏感信息保存方案:"钥匙串" (Keychain)。
    保存在钥匙串的内容相当于系统对其做了保护,在设备锁定时进行了加密处理
     
    钥匙串中的条目称为SecItem,但它是存储在CFDictionary中的。SecItemRef类型并不存在。SecItem有五类:通用密码、互联网密码、证书、密钥和身份。在大多数情况下,我们用到的都是通用密码
     
    钥匙串的使用和字典非常的相似
     
    用原生的 Security.framework 就可以实现钥匙串的访问、读写。但是只能在真机上进行。通常我们使用KeychainItemWrapper来完成钥匙串的加密。
     
    4 代码实现
    注意:
            引入的头文件是MRC模式的,需要进行混编
    获取对象的时候Identify必须一致
    非系统key值是无法添加到字典中的
     
    四 公匙加密
    1  公匙加密简介
         1.1 公钥加密也叫非对称加密
         1. 2 常用算法有RSAElGamal、背包算法、Rabin等等,IOS中用的最多的是RSA
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    BZOJ4889: [TJOI2017]不勤劳的图书管理员
    BZOJ3932: [CQOI2015]任务查询系统
    BZOJ1926: [Sdoi2010]粟粟的书架
    POJ 3281 Dining(网络流-拆点)
    POJ 1273 Drainage Ditches(网络流-最大流)
    POJ 1325 Machine schedine (二分图-最小点覆盖数=最大匹配边数)
    HDU 1281 棋盘游戏
    HDU2255 奔小康赚小钱钱(二分图-最大带权匹配)
    HDU 2444 The Accomodation of Students (二分图存在的判定以及最大匹配数)
    POJ 3660 cow contest (Folyed 求传递闭包)
  • 原文地址:https://www.cnblogs.com/chenbowen/p/6071163.html
Copyright © 2011-2022 走看看