美文网首页
对称加密

对称加密

作者: Mario_ZJ | 来源:发表于2016-10-19 15:18 被阅读46次
  • 对称加密的特点
    1)加密/解密使用相同的密钥
    2)加密和解密的过程是可逆的(明文->密文->明文)
    对称加密和解密
  • 缺点
    无法保证密钥传输过程的安全问题
  • 经典算法
    1)DES 数据加密标准
    2)3DES 使用3个密钥,对消息进行(密钥1·加密)+(密钥2·解密)+(密钥3·加密)
    3)AES 高级加密标准
  • 对称加密的密码算法
    密码算法可以分为分组密码流密码两种
    分组密码 :每次只能处理特定长度的一zu数据的一类密码算法。一个分组的比特数量就称之为分组长度。
    例如:
    DES和3DES的分组长度都是64比特。即每次只能加密64比特的明文,并生成64比特的密文。
    AES的分组长度有128比特、192比特和256比特可以选择。
    流密码 :对数据流进行连续处理的一类算法。
    流密码中一般以1比特、8比特或者是32比特等作为单位俩进行加密和解密。
  • ECB分组模式
    ECB模式的全称为Electronic CodeBook模式。又成为电子密码本模式,每个块都是独立加密的。
    特点:
    1)使用ECB模式加密的时候,相同的明文分组 会被转换为 相同的密文分组
    2)类似于一个巨大的明文分组->密文分组的对照表。
ECB分组模式的加密和解密
  • 终端测试命令
    加密 $ openssl enc -des-ecb -K 616263 -nosalt -in 123.txt -out 123.bin
    解密 $ openssl enc -des-ecb -K 616263 -nosalt -in 123.bin -out 1231.txt -d

  • CBC分组模式
    CBC模式全称为Cipher Block Chainning模式(密文分组链接模式|电子密码链条),使用一个密钥和一个初始化向量 (IV)对数据执行加密转换,可以有效地保证密文的完整性
    特点:在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。

CBC分组模式的加密和解密
  • 终端测试命令
    加密 $ openssl enc -des-cbc -K 616263 -iv 0102030405060708 -nosalt -in a.txt -out a.bin
    解密 $ openssl enc -des-cbc -K 616263 -iv 0102030405060708 -nosalt -in a.bin -out a1.txt -d

  • 示例代码:
    **注意 : **
    1> 加密过程是先加密,再base64编码
    2> 解密过程是先base64解码,再解密
    AES(高级加密标准,默认128位)-ECB 加密&解密

    NSString * string = @"handsome";
    NSString * key = @"cute";
    //加密
/*
     第一个参数:要加密的明文(字符串)
     第二个参数:共享密钥
     第三个参数:nil (初始向量)
     */
    NSString * encodeStr = [[EncryptionTools sharedEncryptionTools] encryptString:string keyString:key iv:nil];
    NSLog(@"%@",encodeStr);
    //解密
    NSString * decodeStr = [[EncryptionTools sharedEncryptionTools] decryptString:encodeStr keyString:key iv:nil];
    NSLog(@"%@",decodeStr);

AES(高级加密标准,默认128位)-CBC 加密&解密

    //加密
    uint8_t iv[8] = {'a','c','d','e','f','g','h'};
    NSData * data = [NSData dataWithBytes:iv length:sizeof(iv)];
    NSString * encodeStr1 = [[EncryptionTools sharedEncryptionTools] encryptString:string keyString:key iv:data];
    NSLog(@"%@",encodeStr1);
    //解密
    NSString * decodeStr1 = [[EncryptionTools sharedEncryptionTools] decryptString:encodeStr1 keyString:key iv:data];
    NSLog(@"%@",decodeStr1);
    ```
**DES(数据加密标准)-ECB 加密&解密**
    ```
    //注意,如果想要通过DES的方式进行加密,解密,需要修改加密方式
//修改加密方式为DES
    EncryptionTools * encry = [EncryptionTools sharedEncryptionTools];
    encry.algorithm = kCCAlgorithmDES;
//加密
    NSString * encodeStr2 = [[EncryptionTools sharedEncryptionTools] encryptString:string keyString:key iv:nil];
    NSLog(@"%@",encodeStr2);
//解密
    NSString * decodeStr2 = [[EncryptionTools sharedEncryptionTools] decryptString:encodeStr2 keyString:key iv:nil];
    NSLog(@"%@",decodeStr2);

DES(数据加密标准)-CBC 加密&解密

DES-CBC的加密和解密方式参见AES-CBC的加密和解密,不过在加密或者解密之前,先要修改加密方式为DES
    EncryptionTools * encry = [EncryptionTools sharedEncryptionTools];
    encry.algorithm = kCCAlgorithmDES;

相关文章

  • https交互流程简述

    https使用到的加密算法 对称加密非对称加密 通过非对称加密,交换对称加密的密钥,之后采用对称加密传输非对称加密...

  • Web开发必须了解的密码学技术

    对称加密与非对称加密 按照密钥的使用形式,加密算法可以分为对称加密和非对称加密(又叫公钥加密)。对称加密在加密和解...

  • 加密算法的应用

    加密算法的应用 [TOC] 加密算法 加密算法主要分为对称加密和非对称加密。 对称加密 对称加密采用了对称密码编码...

  • 学习笔记:HTTPS协议原理

    对称加密和非对称加密 加密分两种,对称加密和非对称加密。对称加密是指加密的双方使用同一个密钥加密和解密数据。非对称...

  • Linux系列五之SSH原理深度解析

    一、对称加密和非对称加密 为了理解SSH,先要介绍两个重要概念:对称加密和非对称加密。 1-1、对称加密 所谓对称...

  • https传输过程

    HTTPS传输过程主要涉及到对称加密和非对称加密两种方式,对称加密用来加密数据内容,非对称加密用来加密对称加密的秘...

  • 加密算法的理解

    加密算法按类型分类: 对称加密、非对称加密、散列算法 对称加密: 加密双方都持有加密算法及密钥 非对称加密: 加密...

  • 加密相关

    加密分为:对称加密和非对称加密。非对称加密的用途:1:加解密,但是速度很慢。2:交换对称加密的密钥,对称加密很快3...

  • 对称加密和非对称加密

    对称加密: 对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥。 非对称加密: 加密...

  • 密码学及iOS签名(一) —— 加密解密

    加密解密类型 对称加密 公钥密码(非对称加密) 对称加密(常见的DES、 3DES、AES) 在对称密码中,加密、...

网友评论

      本文标题:对称加密

      本文链接:https://www.haomeiwen.com/subject/ebjwettx.html