美文网首页
iOS-hash的应用

iOS-hash的应用

作者: IBigLiang | 来源:发表于2020-03-02 15:45 被阅读0次

首先,何为hash?一般在iOS中hash应用于哪些方面?
hash,知道的人一般都会想到散列这个名词,它是通过一种算法,将任意长度的输入,转换成一个固定长度的输出。对于hash,有以下这些特点:

1、算法公开
2、相同的数据,每次得到的hash是相同的
3、对于不同数据,运算结果长度一样,比如MD5
4、无法逆运算
5、可以用作数据的“指纹”识别

hash的用途,在iOS中一般有以下一些地方:

1、用户的密码加密
2、搜索引擎
3、版权
4、数字签名

这里,重点讲一下用户密码加密和数字签名,一个APP用户注册登录的过程,就是一个用户密码加密和数字签名的很好的应用场景,先看下面两张图:


注册过程

可以看到,注册过程,就可以用数字签名,来很好的保证我们数据传输的安全性。数字签名的几大步骤:

1、一般我们先将数据有效的进行一个排序,保证服务端和客户端两边的数据排列的一致性,然后将客户端数据进行一个MD5算法运算。
2、将MD5之后的数据,一般是一个较小的固定数据,我们可以用公钥,进行一次RSA加密。
3、将RSA加密之后的密文,跟用户注册数据信息一起传递给服务端。
4、将客户端传过来的RSA加密之后的密文进行解密。
5、服务端先将用户注册数据信息用客户端一样的排序方式进行排序,然后MD5。将得到的MD5跟4步骤中解密之后的结果进行对比,对比一致则说明正确。
登录过程

而登录的过程,就是一个密码加密,一般我们会用HMAC,来完成这个密码加密的过程,因为原则上来说HMAC是一个算法原理,而不是一个算法,流程如下:

1 使用一个密钥加密,然后做两次hash散列。
2 把散列得到的hash值,加上从服务端得到的时间戳进行MD5。
3 将MD5之后的数据传递给服务端,服务端用同样密钥加数据库密码信息加密、散列,然后加上时间戳MD5进行比对。

在HMAC的过程中,有几个特点:

1、密钥是可以动态修改的,每次更换设备,用户重新登录时,可以换新的密钥进行加密
2、加上时间戳的验证,可以很好的避免每次发送数据的固定化,提高数据的安全性
3、完全可以做到,一个用户一个密钥,即使当前用户密钥丢失,也不会影响其他用户信息的安全性

以上就是hash的一些应用场景的描述,笔者也是大概说了一下使用场景的原理性知识,希望大家有不同意见,可以给与指导。

相关文章

  • iOS-hash的应用

    首先,何为hash?一般在iOS中hash应用于哪些方面?hash,知道的人一般都会想到散列这个名词,它是通过一种...

  • 应用案例——视图的应用

    案例的目的 掌握视图的创建、查询、更新和删除操作。假如有来自河北和山东的三个理科学生报考北京大学和清华大学,现在需...

  • this的应用

    例子

  • Android通过包名获取其他应用程序的名称

    查看本应用的应用名称 : 查看其它应用的应用名称 :

  • 应用

    【应用】 $应用$ 【应用名称】王者荣耀【应用名称】 【应用介绍】5v5对战手游【应用介绍】 $应用$ 【应用名称...

  • Day17 - Flutter - 应用信息配置

    概述 应用标识 应用名称 应用图标 应用启动图 一、应用标识 1.1. Android应用标识Android应用标...

  • 应用文的实际应用

    应用文写作语文课程标准(2011年版)中明确要求:学写常见的应用文(5—6年级)、写常见的应用(7—9年级)。众所...

  • iOS应用程序间的跳转

    一.从应用A直接跳转到应用B 以应用A(网易)与应用B(微信)说明,网易应用跳转至微信应用; 1.设置应用B的UR...

  • 2018-04-09应用管理

    应用管理 本文主要是分析的是“设置”--> "应用"中的应用管理中的应用的运行时权限和默认应用配置等。分析了应用权...

  • 《高性能iOS应用开发》生命周期

    应用的生命周期 应用委托 AppDelegate 通常是应用创建的第一个对象,为应用提供环境变量。 应用启动 应用...

网友评论

      本文标题:iOS-hash的应用

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