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

2020-01-21 03:29:58王冬梅

发送请求


 [[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
  NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
 }] resume];

六. 钥匙串访问

基本介绍

苹果在 iOS 7.0.3版本以后公布钥匙串访问的SDK.钥匙串访问接口是纯C语言的. 钥匙串使用 AES 256加密算法,能够保证用户密码的安全. 钥匙串访问的第三方框架SSKeychain,是对C语言框架的封装.注意:不需要看源码. 钥匙串访问的密码保存在哪里?只有苹果才知道.这样进一步保障了用户的密码安全.

简单使用

参数介绍

Password :需要存储的密码信息.

Service :用来标识 app ,app的唯一标识符.

account :账户信息,当前密码所对应的账号.

利用钥匙串进行加密


 // 获取应用程序唯一标识.
 NSString *bundleId = [NSBundle mainBundle].bundleIdentifier;
 // 利用第三方框架,将用户密码保存在钥匙串
 [SSKeychain setPassword:self.pwdText.text forService:bundleId account:@"wpf"];

从钥匙串加载密码


self.pwdText.text = [SSKeychain passwordForService:bundleId account:@"wpf"];

七. 指纹识别

简单介绍

指纹识别功能是 iphone 5S之后推出的.SDK是 iOS 8.0 推出! 推出指纹识别功能的目的,是为了简化移动支付环节,占领移动支付市场.

使用步骤

导入框架


 #import <LocalAuthentication/LocalAuthentication.h>

获得当前系统版本号


 float version = [UIDevice currentDevice].systemVersion.floatValue;
 if (version < 8.0 ) // 判断当前系统版本 {
  NSLog(@"系统版本太低,请升级至最新系统");
  return;
 }

实例化指纹识别对象,判断当前设备是否支持指纹识别功能(是否带有TouchID)


 // 1> 实例化指纹识别对象
 LAContext *laCtx = [[LAContext alloc] init];
 // 2> 判断当前设备是否支持指纹识别功能.
 if (![laCtx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {
  // 如果设备不支持指纹识别功能
  NSLog(@"该设备不支持指纹识别功能");
  return;
 };

指纹登陆(默认是异步方法)


 [laCtx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹登陆" reply:^(BOOL success, NSError *error) {
  // 如果成功,表示指纹输入正确.
  if (success) {
   NSLog(@"指纹识别成功!");
  } else {
   NSLog(@"指纹识别错误,请再次尝试");
  }
 }];