21 - 数据安全

提交用户的隐私数据: (支付信息,账号信息等等)

  1. 不要用GET请求提交,这样会将参数暴露在URL中,
  2. 一定要用POST请求提交,
  3. 请求的URL一般会记录在服务器的访问日志中,
  4. 服务器的访问日志是黑客攻击的重点对象之一,
  5. 不过现在有很多的软件,可以拦截手机的请求数据,
  6. 如果仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题,
  7. 因此:提交用户的隐私数据,一定不要明文提交,而且需要加密处理后在提交.SHA

常见的加密算法:

MD5 / SHA / DES / 3DES / RC2和RC4 / RSA / IDEA / DSA / AES

MD5 :

  • 消息摘要算法第5版(Message Digest Algorithm 5)
  • 对输入的信息生成唯一128位散列值 (32个字符)
  • MD5算法具有较好的安全性,而且免费,因此该加密算法被广泛使用,
  • 主要运用在数字签名,文件完整性验证以及口令加密等方面.

www.cmd5.com

  • 这个暴力破解的网站也可以将MD5破解掉
  • 这个网站的工作原理就是有一个很大的数据库,
  • 相当于一个字典,key就是加密过的散列值,value就是加密之前的信息.



    21 - 数据安全_第1张图片

    21 - 数据安全_第2张图片

提交隐私数据的安全过程

21 - 数据安全_第3张图片

当用户注册填写账号,密码的时候就注定要开始加密了

  • 只要用户点击注册按钮之后就开始加密
  • 将加密过的密码传送给服务器
  • 服务器在放入数据库,此时数据库的密码已经是暗文.


    21 - 数据安全_第4张图片

    当用户登录的时候

  • 将加密过的密码传送给服务器,然后服务器,拿到密码去数据库中匹配,
  • 如果匹配到了,那么返回给服务器,服务器在返回给用户.这样就完成了登录.

代码实现

加密会用到苹果提供的一个库叫:CommonCrypto

21 - 数据安全_第5张图片

MD5分类

21 - 数据安全_第6张图片

21 - 数据安全_第7张图片

看下暴力破解得出的结果

21 - 数据安全_第8张图片

看到这里,是不是觉得没法完了,所有的账号信息,支付信息不都完蛋了么

别着急,我们可以对MD5进行改进

MD5的一些改进:

加盐(Salt):

1 - 在明文的固定位置插入随机串,然后在进行MD5加密
2 - 先加密, 后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序
3 - 更多种方法

  • 总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文

你可能感兴趣的:(21 - 数据安全)