密码学

密码编码学:

密码使用学 密码分析学

网络开发准则

  • 1、在玩罗开发中不允许传输用户明文隐私数据
  • 2、在本地不允许保存用户的铭文隐私数据

破解方法

  • 1、蛮力攻击、穷尽密码搜索
56-64位:几个小时甚至几天
112-128位:量子计算机
大于256位:量子计算机也破解不了
  • 2、字母频率分析

加密方法

  • 哈希(散列)函数

md5
SHA1
SHA265/512

  • 对称加密算法

DES
3DES
AES()

  • 非对称加密算法

RSA加密算法(因式分解)

散列函数

特点

  • 1、算法公开。
  • 2、对相同数据加密,得到的结果是一样的。
  • 3、得到的结果都是定长的。

MD5用途

终端:md5 -s '要加密的字符串'
1、只用md5加密时服务器不需要知道用户的真实密码,数据后只保存
2、搜索
3、版权(将下载文件人的用户名和下载文件的md5值绑定)
4、文件完整性校验(下载文件校验、上传(断电续传))
5、秒传(用户删除上传的文件,服务器并不删除,用户再次上传时用md5查询是否上传过)

加盐

HMAC

原理:

给定一个密钥,对明文和密钥拼接,再做两次md5的计算。
为了安全添加时间戳到密匙。

密钥获取途径

  • 1、注册的时候获取密匙。
  • 2、新设备获取密匙时旧设备提供权限。
  • 3、通过短信验证获取密匙。
  • 4、好友验证。

密码学 进阶

1.指纹识别
iphone 5S 以后开始推出指纹识别
iOS 8.0时候,开放指纹识别

002-登录业务逻辑完善
在网络开发中,我们一般会把一个单例来负责网络请求!
将网络登录部分抽取出来。

  • 新建一个类
  • 复制方法
  • 编译执行解决错误
  • 测试登录能否成功运行(程序一启动,先登录!)
  • 知道用户登录之后,在异步方法里面通过通知告诉外界!
  • 注销同样要切换界面 再次利用通知中心,实现注销

问题:1.登录什么时候运行最合适?

加密部分

==加密算法==
--Hash 散列函数
不可逆!密码识别,文件识别

问题:
1.加密运用场景最多的地方?
军事!
2.加密算法是不是都应该不可逆?
不是!

  • 以下2种加密算法都是可逆的
    --对称加密 传统的加密算法
    --非对称加密RSA (现代加密算法)

明文——加密-密文
密文-解密-明文

  • 对称加密
    加密&解密都是使用一个密钥!
    密钥的保密工作就非常重要!
  • 非对称加密(RSA)
    -公钥、私钥
    -用公钥加密,私钥解密
    -用私钥加密,公钥解密

  • 一个故事讲完https
    A 和 B 聊天 ,明文聊天
    AB 商量做一个数据加密!
    逻辑:发送信息之前,加密;B接收的时候吉、解密
    总结:
    1.非对称 + 对称加密
    第一次使用非对称的方式,发送密钥给对方;
    其他信息利用对称加密发送;
    优点:既解决了密钥的传送问题,又解决了RSA速度慢的问题;

  • 对称加密的经典的算法

  • -DES 数据加密标准

  • -3DES (使用3个密钥,对相同的数据来加密3次,增强加密强度)

  • AES 高级加密标准(美国国家安全局就是用的这个,苹果的钥匙串访问也是用的AES)

2种加密的方式

ECB:把每一个数据块独立加密,最后再拼接。解密也是同样的道理。先拆分数据块,独立解密
CBC:加密每一个数据块,都会与上一个数据块之间有联系;密码块链,使用密钥和一个向量对数据执行加密转换。能够保证密文的完整性,如果一个数据改变了,后面数据都会造成破坏!

openssl enc -des-ecb -K 616263 -nosalt -in abc.txt -out msg1.bin
注:
    openssl 为一个开源的加密库
    enc 加密方法
    -k 密匙
    -nosalt 不加盐

more "文件名": 打印文件内容
xxd "文件名": 打印文件的16进制数

  • 向量
  • OpenGL 加密
  • 某个方向 距离 向量
  • 密码学为什么和几何能扯到关系?
  • 因为几何是有规律的,但结果是多变的
  • 现代加密学都和几何有关,因为几何(包含圆形、椭圆、球体)的变量的是规律的,但是结果是多变的。
openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in abc.txt -out msg4.bin

你可能感兴趣的:(密码学)