网络安全

1 篇文章 0 订阅
1 篇文章 0 订阅

网络安全问题

归根结底为两个网络安全问题

  1. 本地存储的用户名和密码等敏感信息—可以通过查看用户的偏好设置进行破解

    • 可以通过 软件iFunBox 查看指定应用的偏好设置.也就是说,一旦别人接触你的手机,并破解锁屏密码,那么手机中任何账户密码都会暴露.
  2. 网络传输过程中,黑客通过某些技术手段可以拦截用户发送的敏感信息

    • 可以通过软件青花瓷来抓取应用发送接收请求时的数据,并有针对性的进行破解,从而获取敏感信息.即使是用 POST 方法也能查看明文信息

    • 为了能让青花瓷抓取到手机访问电脑上网页资源的请求信息,需要先用本机分享无线网络给手机,然后在手机上设置该 wifi 热点的代理电脑的 ip 地址

Base64

  • 既可以用来保存到本地,也可以用于网络传输加密.
  • 经过 base64机密后的字符串就不像之前的明文那样好理解,在一定程度上可保护个人隐私
  • 缺点 : 能编码,也能轻易解码

终端实现

  • 编码
    • echo -n “Amos” | base64
    • 结果:QW1vcw==
  • 解码
    • echo -n “QW1vcw==” | base64 -D
    • 结果:Amos

代码实现

  • 编码

    1. 先将字符串转换成 NSData
    2. 在用 data 对象的base64NSStringWithOption方法获取加密后的字符串

      • 代码如下
    - (NSString*)base64Encoder:(NSString*)originalString
    {
    //1.先转化成二进制数据
    NSData* data = [originalString dataUsingEncoding:NSUTF8StringEncoding];
    
    //2.利用 data 加密
    return [data base64EncodedStringWithOptions:0];
    }
  • 解码

    1. 先用NSData 的initWithBase64EncodedString创建一个对象data,此时data 已经是解码后的
      2.利用 data 创建一个 NSString 对象,就是解码后的明文

      • 代码如下
    - (NSString*)base64Decoder:(NSString*)encodedString
    {
    //1.根据加密的字符串创建二进制数据
    NSData* data = [[NSData alloc] initWithBase64EncodedString:encodedString options:0];
    
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    }

MD5(主要用于密码)

散列(哈希)函数

  • 算法是公开的,对 所有语言都是通用的
  • 对任意一个二进制数据进行加密,都能得到相同长度(32位)的密文
  • 主要用于在网络传输中,用于密码加密
  • 网盘应用 因为相同文件的 MD5都一样,所以文件在网盘上只需要存放一份
  • 缺点:长度不够,国外已弃用,国内仍普遍使用

终端实现:

  • md5 -s “amos”

  • 打印结果:MD5 (“amos”) = 2869191f3991a5611e8991dd59f9987d

代码实现:

都需要导入一个工具包头文件: NSString+Hash.h,下载地址:哈希函数

  • 初步:

        NSString* originalString = @"amos";
        NSLog(@"加密后:%@", [originalString md5String]);
    • md5String 这个是从NSString+Hash.h定义的分类方法,可返回字符串32位的 md5密文
  • 加盐:

    在原有字符串后添加其他字符串(多为特殊字符串),增加穷举难度

    - (void)test
    {
        NSString* originalString = @"amos";
        [self hashTestWithString:originalString];
    }
    
        - (NSString*)hashTestWithString:(NSString*)originalString
    {
        //盐(干扰性字符串)---越咸越好
        NSString* salt = @"%@#^&";
    
        //加盐
        originalString = [originalString stringByAppendingString:salt];
    
        NSLog(@"加密后:%@", [originalString md5String]);
    
        return [originalString md5String];
    }
    • 结果:
    加密后:2869191f3991a5611e8991dd59f9987d
  • 多次 MD5

     NSLog(@"加密后:%@", [[originalString md5String] md5String]);
    • 结果:
    加密后:350e1165ed352f68a24744584140039f
  • 有序的乱序 MD5

        //加密源字符串,得到密文
    originalString = [originalString md5String];
    
    NSLog(@"乱序前:%@", originalString);
    
    1 //获取密文头部子字符串作为新密文尾部
    NSString* trail = [originalString substringToIndex:2];
    
    //获取密文尾部子字符串作为新密文头部
    NSString* header = [originalString substringFromIndex:2];
    
    NSLog(@"乱序后:%@", [header stringByAppendingString:trail]);
    
    //返回重新拼接的密文
    return [header stringByAppendingString:trail];
    • 结果:
     乱序前:2869191f3991a5611e8991dd59f9987d
     乱序后:69191f3991a5611e8991dd59f9987d28
  • 注意: 不管是用哪一种规则,都要保持客户端与服务器端相同,否则将无法匹配,因为 MD5加密是不可逆的.

钥匙串(苹果推荐,在 iOS7.0.3之后才能使用)

  • 主要用于保存到本地,将敏感信息交给钥匙串保管更安全
  • 使用钥匙串访问,使用的是 AES 256算法,能够保证密码安全
  • 钥匙串保存位置:未知,只有苹果知道
  • 钥匙串访问 SDK 在 iOS7.0.3之后才发布
  • 其接口是纯 C 语言的,有人封装成 OC, 使用很方便,名字是: SSKeyChain, 可以在 gitHub 上下载

  • 事例代码:

- (void)testKeyChain
{

    //1.保存账户和密码到钥匙串
    NSBundle* bundle = [NSBundle mainBundle];
    NSString* appId = bundle.bundleIdentifier;

    [SSKeychain setPassword:@"amos" forService:appId account:@"username"];
    [SSKeychain setPassword:@"heheda" forService:appId account:@"password"];

    //2.从钥匙串中取出对应的账户和密码
    NSString* username = [SSKeychain passwordForService:appId account:@"username"];

    NSString* password = [SSKeychain passwordForService:appId account:@"password"];

    NSLog(@"从钥匙串中获取的账户名:%@", username);
    NSLog(@"从钥匙串中获取的密码:%@", password);
}
  • 打印结果:

    从钥匙串中获取的账户名:amos
    从钥匙串中获取的密码:heheda
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值