iOS 钥匙串 指纹识别 get和Post请求的区别

时间:2023-03-09 19:47:02
iOS 钥匙串 指纹识别 get和Post请求的区别

01-钥匙串

1. 通过系统提供的钥匙串功能可以在本地保存密码,系统使用AES的方式对密码加密 a. 查看Safari中保存的密码

2. 使用第三方框架SSKeychain把密码保存到钥匙串和获取钥匙串中的密码 a. 获取钥匙串中的所有用户

[SSKeychain allAccounts]
b. 把密码保存到钥匙串中 service可以用boundleID

[SSKeychain setPassword:self.pwdView.text forService:kPWDCHAINKEY account:self.nameView.text]; c. 从钥匙串中获取密码

self.pwdView.text = [SSKeychain passwordForService:kPWDCHAINKEY account:self.nameView.text];

02-指纹识别 

1. 指纹识别
a. iPhone5s推出指纹识别,touchID b. iOS8中开放了指纹识别的sdk

2. 指纹识别的使用

  1. 导入头文件
    #import <LocalAuthentication/LocalAuthentication.h>
  2. 判断设备是否支持指纹识别
    LAContext *ctx = [[LAContext alloc] init];

//判断是否支持指纹识别
if ([ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL]) {

NSLog(@"支持");

//指纹识别

[ctx evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹验证" reply: ^(BOOL success, NSError *error) {

NSLog(@" == %d===%@",success,error); if (success) {

//指纹验证成功后,请求服务器支付或登录 }

}]; }else{

NSLog(@"不支持"); }

3. 只有iOS8以后才有指纹识别的api //判断设备是否是iOS8的系统

if ([UIDevice currentDevice].systemVersion.floatValue < 8) {

return; }

4. 指纹识别的错误

//指纹无法识别

LAErrorAuthenticationFailed = kLAErrorAuthenticationFailed, //用户点了取消按钮

LAErrorUserCancel //用户点击了输入密码按钮

LAErrorUserFallback //系统取消,激活了其他应用

= kLAErrorUserCancel, = kLAErrorUserFallback,

LAErrorSystemCancel //验证无法启动,设备上没有设置密码

= kLAErrorSystemCancel,

LAErrorPasscodeNotSet = kLAErrorPasscodeNotSet, //验证无法启动,设备上没有Touch ID

LAErrorTouchIDNotAvailable = kLAErrorTouchIDNotAvailable, //验证无法启动,没有输入指纹

LAErrorTouchIDNotEnrolled = kLAErrorTouchIDNotEnrolled,

03. GET和POST对比 

a. GET
i. GET一般是获取服务器上的数据

ii. GET方式是通过url传递数据,效率高 iii. 请求的数据在URL上,不安全

1) login.php?username=zs&pwd=123456

2) 参数中如果有中文和特殊符号(? = &等)应该进行url编码 iv. GET请求的结果能够被浏览器缓存

b. POST
i. POST一般是往服务器提交数据,并获取服务器返回的结果

ii. POST方式是通过请求体传输数据,效率低 iii. 请求的数据用户看不到,相对安全

iv. POST请求不能被浏览器缓存