密码编码学:
密码使用学 密码分析学
网络开发准则
- 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
网友评论