加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

iOS中常见的几种加密方法总结!

发布时间:2019-04-11 07:00:34 所属栏目:业界 来源:iOS开发_小迷糊
导读:这篇文章首要给各人先容了关于iOS中常见的几种加密要领,个中包罗 base64加密、POST加密、Token值先容、MD5加密--(信息-择要算法) 哈希算法之一、时刻戳暗码以及指纹辨认等要领,文中通过示例代码先容的很是具体,必要的伴侣可以参考下。 媒介 在我们一般

在Main.storyboard关联的节制器中配置注销按钮的点击变乱

  1. // 1. 破除当地信息 
  2. [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUserNameKey]; 
  3. [[NSUserDefaults standardUserDefaults] removeObjectForKey:kPasswordKey]; 
  4. // 同步信息 
  5. [[NSUserDefaults standardUserDefaults] synchronize]; 
  6. // 2. 发送信息,切换节制器 
  7. [[NSNotificationCenter defaultCenter] postNotificationName:@"logoutSuccess" object:nil]; 

三. Token值先容

token 值: 登录令牌.操作 token 值来判定用户的登录状态.相同于 MD5 加密之后的长字符串.

用户登录乐成之后,在后端(处事器端)会按照用户信息天生一个独一的值.这个值就是 token 值.

根基行使:

在处事器端(数据库)会生涯这个 token 值,往后操作这个 token 值来检索对应的用户信息,而且判定用户的登录状态.

用户登录乐成之后,处事器会将天生的 token 值返回给 客户端,在客户端也会生涯这个 token 值.(一样平常可以生涯在 cookie 中,也可以本技艺动确定生涯位置(好比偏好配置.)).

往后客户端在发送新的收集哀求的时辰,会默认自动附带这个 token 值(作为一个参数转达给处事器.).处事器拿到客户端转达的 token 值跟生涯在 数据库中的 token 值做比拟,以此来判定用户身份和登录状态.

判定登录状态:

  • 假如客户端没有这个 token 值,意味着没有登录乐成过,提醒用户登录.
  • 假如客户端有 token 值,一样平常会以为登录乐成.不必要用户再次登录(输入账号和暗码信息).

token 值扩展:

  • token 值有失效时刻:
  • 一样平常的 app ,token值得失效时刻都在 1 年以上.
  • 非凡的 app :银行类 app /付出类 app :token值失效时刻 15 分钟阁下.

一旦用户信息改变(暗码改变),会在处事器天生新的 token 值,原本的 token值就会失效.必要再次输入账号和暗码,以获得天生的新的 token 值.

独一性判定: 每次登录,城市天生一个新的token值.原本的 token 值就会失效.操作时刻来判定登录的差别性.

四. MD5加密--(信息-择要算法) 哈希算法之一

把一个恣意长度的字节串调动成必然长度的十六进制的大整数.

留意,字符串的转换进程是不行逆的,不能通过加密功效,反向推导出原始内容

根基先容

  • 必要导入第三方框架: NSString+Hash

MD5特点:

  • 压缩性 : 恣意长度的数据,算出的 MD5 值长度都是牢靠的.
  • 轻易计较 : 从原数据计较出 MD5 值很轻易.
  • 抗修改性 : 对原数据举办任何窜改,哪怕只修改一个字节,所获得的 MD5 值都有很大区别.
  • 弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有沟通 MD5 值的数据(即伪造数据)长短常坚苦的.
  • 强抗碰撞: 想找到两个差异数据,使他们具有沟通的 MD5 值,长短常坚苦的

MD5 应用:

  • 同等性验证:MD5将整个文件当做一个大文本信息,通过不行逆的字符串调动算法,发生一个独一的MD5信息择要.就像每小我私人都有本身唯一无二的指纹,MD5对任何文件发生一个唯一无二的数字指纹.

操作 MD5 来举办文件校验,被大量应用在软件下载站,论坛数据库,体系文件安详等方面(是否定为添加木马,改动文件内容等).百度‘MD5'第一个网站进去,操作数据库伪解密,即反查询

  • 数字署名;
  • 安详会见认证;

行使要领

操作 MD5 对字符串举办加密

  1. NSString *password = @"WangPengfei"; 
  2. password = [password md5String]; 
  3. NSLog(@"password1:%@", password); 

加盐:可以担保 MD5加密之后越发安详

  1. NSString *salt = @"234567890-!@#$%^&*()_+QWERTYUIOP{ASDFGHJKL:XCVBNM<>"; 
  2. [password stringByAppendingString:salt]; 
  3. password = [password md5String]; 
  4. NSLog(@"password2:%@", password); 

每一个公司都有本身的“盐值”,盐值越伟大,越安详

五. 时刻戳暗码

根基先容

动态暗码:沟通的暗码明文+沟通的加密算法-->由于每次登岸时刻都差异,以是每次计较出的功效也都不沟通.可以充实担保暗码的安详性.

处事器管帐算两个时刻值,当期时刻和前一分钟的时刻(好比:第59S发送的收集哀求,一秒钟后处事器收到并作出相应,这时处事器当前时刻比客户端发送时刻晚一分钟,如故可以或许判定精确的值)

行使步调

获取MD5 初次加密的暗码

  1. // 1. 当前暗码 
  2. NSString *password = @"zhang"; 
  3. // 2. hmacKey值,是对“WangPengfei” 举办 MD5加密之后的值(动态天生的) 
  4. NSString *hmacKey = @"d3bba33b51acaa0a272de7a2f6dfa233"; 

加密进程

  1. // 1. 第一次加密:第一次 HMAC 运算 
  2. password = [password hmacMD5StringWithKey:hmacKey]; 
  3. // 2.1 获适合前的时刻 
  4. NSDate *date = [NSDate date]; 
  5. // 2.2 获适合前时刻的字符串 
  6. // 实例化时刻名目器 
  7. NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
  8. // 配置时刻名目 
  9. formatter.dateFormat = @"yyyy-MM-dd HH:mm"; 
  10. // 获取当前时刻(要和处事器保持同等) 
  11. NSString *dateStr = [formatter stringFromDate:date]; 
  12. // 3. 将第一次加密后的暗码与当前时刻的字符串拼接在一路 
  13. password = [password stringByAppendingString:dateStr]; 
  14. // 4. 举办第二次 HMAC 加密 
  15. password = [password hmacMD5StringWithKey:hmacKey]; 

会见 loginhmac.php 接口,发送哀求

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读