• 初级:使用MD5对字符串进行加密操作


    加密技术在企业数据安全中的应用:

    大型企业管理软件的应用越来越广泛,企业数据平台涉及局域网、广域网、 Internet等,在各类系统中保存的企业关键数据量也越来越大,许多数据需要保存数十年以上,甚至是永久性保存,关键业务数据是企业生存的命脉和宝贵 的资源,数据安全性问题越来越突出。如何增强企业软件系统的安全性、保密性、真实性、完整性,成为每一位软件开发人员关注的焦点。从保护数据的角度讲,对 数据安全这个广义概念,可以细分为三部分:数据加密、数据传输安全和身份认证管理。
    1. 数据加密就是按照确定的密码算法把敏感的明文数据变换成难以识别的密文数据,通过使用不同的密钥,可用同一加密算法把同一明文加密成不同的密文。当需要时,可使用密钥把密文数据还原成明文数据,称为解密。这样就可以实现数据的保密性。数据加密被公认为是保护数据传输安全惟一实用的方法和保护存储数据安全的有效方法,它是数据保护在技术上最重要的防线。
    2. 数据传输安全是指数据在传输过程中必须要确保数据的安全性,完整性和不可篡改性。
    3. 身份认证的目的是确定系统和网络的访问者是否是合法用户。主要采用登录密码、代表用户身份的物品(如智能卡IC卡等)或反映用户生理特征的标识鉴别访问者的身份。

    加密算法有很多种,在iOS开发当中,MD5是我们常用的摘要算法.

    MD5:MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3MD4

    MD5算法具有以下特点
    1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
    2、容易计算:从原数据计算出MD5值很容易。
    3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
    4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
    MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1RIPEMD以及Haval等。
     
    接下来我么就直接来实践一下,用MD5进行加密操作:
    首先需要引入类库#import <CommonCrypto/CommonCrypto.h>才能调用MD5进行操作.
     1 #pragma mark - 加密字符串
     2     
     3     //1.准备一个字符串,用于加密
     4     NSString *str = @"I Love U"; //同一个字符串进行MD5加密出来的内容相同
     5     //2.因为MD5是基于C语言的,所以我们需要将字符串进行编码
     6     const char *data = [str UTF8String];
     7     //3.加密后相关的内容,需使用字符串数组去存取(16进制,32位)
     8 //    CC_MD5_DIGEST_LENGTH表示长度的
     9     unsigned char result [CC_MD5_DIGEST_LENGTH];
    10     //4.进行MD5加密
    11     //参数一:你要加密的内容data
    12     //参数二:要加密的data的一个长度
    13     //参数三:MD5
    14     CC_MD5(data, (CC_LONG)strlen(data), result);
    15     
    16     //5.创建可变字符串,保存结果
    17     NSMutableString *mutableString = [NSMutableString string];
    18     //6.遍历结果数组,然后添加到可变字符串中
    19     for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
    20         //16进制格式修饰符%x,02表示不足2位的时候,前面补0
    21         [mutableString appendFormat:@"%02x", result[i]];
    22     }
    23     NSLog(@"%@", mutableString);

    当然你也可以将MD5封装起来.创建一个类目,方便下次使用.内部实现就是上面的步骤.

  • 相关阅读:
    网上搜索整理的前端开发工程师面试题附答案
    Python-RabbitMQ-topic(细致消息过滤的广播模式)
    Python-RabbitMQ-direct(广播模式)
    Python-RabbitMQ-fanout(广播模式)
    rabbitmq中关于exchange模式type报错
    Python-RabbitMQ(持久化)
    Python-RabbitMQ(简单发送模型)
    python-gevent模块实现socket大并发
    python-gevent模块(自动切换io的协程)
    python-greenlet模块(协程)
  • 原文地址:https://www.cnblogs.com/lovebugssun/p/5486712.html
Copyright © 2020-2023  润新知