在Main.storyboard关联的节制器中配置注销按钮的点击变乱
- // 1. 破除当地信息
- [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUserNameKey];
- [[NSUserDefaults standardUserDefaults] removeObjectForKey:kPasswordKey];
- // 同步信息
- [[NSUserDefaults standardUserDefaults] synchronize];
- // 2. 发送信息,切换节制器
- [[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加密--(信息-择要算法) 哈希算法之一
把一个恣意长度的字节串调动成必然长度的十六进制的大整数.
留意,字符串的转换进程是不行逆的,不能通过加密功效,反向推导出原始内容
根基先容
MD5特点:
- 压缩性 : 恣意长度的数据,算出的 MD5 值长度都是牢靠的.
- 轻易计较 : 从原数据计较出 MD5 值很轻易.
- 抗修改性 : 对原数据举办任何窜改,哪怕只修改一个字节,所获得的 MD5 值都有很大区别.
- 弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有沟通 MD5 值的数据(即伪造数据)长短常坚苦的.
- 强抗碰撞: 想找到两个差异数据,使他们具有沟通的 MD5 值,长短常坚苦的
MD5 应用:
- 同等性验证:MD5将整个文件当做一个大文本信息,通过不行逆的字符串调动算法,发生一个独一的MD5信息择要.就像每小我私人都有本身唯一无二的指纹,MD5对任何文件发生一个唯一无二的数字指纹.
操作 MD5 来举办文件校验,被大量应用在软件下载站,论坛数据库,体系文件安详等方面(是否定为添加木马,改动文件内容等).百度‘MD5'第一个网站进去,操作数据库伪解密,即反查询
行使要领
操作 MD5 对字符串举办加密
- NSString *password = @"WangPengfei";
- password = [password md5String];
- NSLog(@"password1:%@", password);
加盐:可以担保 MD5加密之后越发安详
- NSString *salt = @"234567890-!@#$%^&*()_+QWERTYUIOP{ASDFGHJKL:XCVBNM<>";
- [password stringByAppendingString:salt];
- password = [password md5String];
- NSLog(@"password2:%@", password);
每一个公司都有本身的“盐值”,盐值越伟大,越安详
五. 时刻戳暗码
根基先容
动态暗码:沟通的暗码明文+沟通的加密算法-->由于每次登岸时刻都差异,以是每次计较出的功效也都不沟通.可以充实担保暗码的安详性.
处事器管帐算两个时刻值,当期时刻和前一分钟的时刻(好比:第59S发送的收集哀求,一秒钟后处事器收到并作出相应,这时处事器当前时刻比客户端发送时刻晚一分钟,如故可以或许判定精确的值)
行使步调
获取MD5 初次加密的暗码
- // 1. 当前暗码
- NSString *password = @"zhang";
- // 2. hmacKey值,是对“WangPengfei” 举办 MD5加密之后的值(动态天生的)
- NSString *hmacKey = @"d3bba33b51acaa0a272de7a2f6dfa233";
加密进程
- // 1. 第一次加密:第一次 HMAC 运算
- password = [password hmacMD5StringWithKey:hmacKey];
- // 2.1 获适合前的时刻
- NSDate *date = [NSDate date];
- // 2.2 获适合前时刻的字符串
- // 实例化时刻名目器
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- // 配置时刻名目
- formatter.dateFormat = @"yyyy-MM-dd HH:mm";
- // 获取当前时刻(要和处事器保持同等)
- NSString *dateStr = [formatter stringFromDate:date];
- // 3. 将第一次加密后的暗码与当前时刻的字符串拼接在一路
- password = [password stringByAppendingString:dateStr];
- // 4. 举办第二次 HMAC 加密
- password = [password hmacMD5StringWithKey:hmacKey];
会见 loginhmac.php 接口,发送哀求 (编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|