密码学

作者: S大偉 | 来源:发表于2019-07-03 11:07 被阅读0次

    原则:
    1、不允许在网络上传递明文的用户隐私信息
    2、在本地不允许明文的保存用户隐私信息

    起初应用于军事领域,然后凯撒大帝,后面密码本加密
    a-c,b-e,c-zz 持续到了上世纪50年代

    RSA(三个人名)

    • 加密算法公开
    • 公钥加密,私钥解密
    • 公钥解密吗,私钥加密
      key:其实就是一个数字,只能通过公示分解破解 (破解的话需要50年左右)

    AF

    哈希(散列)函数

    MD5
    SHA1
    SHA256

    对称加密算法

    DES
    3DES
    AES(高级密码标准,美国国家安全局使用的) iOS操作系统内部使用的 破解需要几千万年

    散列函数特点

    • 算法公开
    • 对相同的数据加密,得到的结果是一样的
    • 对不同的数据加密,得到的结果是定长的,32位字符(a-z 0-9)
    • 信息摘要,信息“指纹”,是用来做识别的
    • 不能反算

    用途

    • 密码,服务器其实也不知道用户的真实密码
    • 搜索
    • 版权

    破解

    • 目前破解的散列只有MD5,SHA1也在边缘
    • 散列碰撞,不同的数据,使用MD5之后能够得到相同的散列结果无数种
    • 张小云

    MD5的基础安全

    1、加“盐”-- 早期解决方案, 足够长/复杂的字符串
    缺点:盐是固定的,写死在程序里面的

    2、HMAC -- 近几年在国内开始增多
    给定一个密钥!对明文进行加密,并且做了“两次散列”。32位字符
    密钥一般从服务器获取

    服务器
    a、账号、密钥、加密后的密码
    b、(加密之后的密码+“201701112205”).MD5 时间限制

    HMAC客户端登录思路
    a、用户输入账号、密码
    b、本地查找密钥:如果没有密钥,向服务器获取(账号对应的密钥)

    本地:
    账号:NSUserDefault
    密码:钥匙串访问keyChain

    参数:
    1、密码明文
    2、forService服务:就是APP的唯一标识,一般使用BoundID或加密后的BoundID
    3、账号

    1、苹果的“原生态圈”,从iOS7.0.3版本,开放给开发者
    2、钥匙串加密方式就是AES加密,可以将保存的密码以明文的方式反算给你
    3、苹果原生的接口都是C语言,但有三方库,很方便

    相关文章

      网友评论

          本文标题:密码学

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