美文网首页
对称加密

对称加密

作者: Emma_虫儿 | 来源:发表于2019-07-18 18:13 被阅读0次

你好,我是Emma,对称加密初探ing。

对称加密
明文-》 密钥 -》密文
密文-》 密钥 -》明文

  • DES 数据加密标准 用的少是强度不够。
  • 3DES 只是简单的加强了密钥的强度,但是密钥的保护手段变的更加难。用的比较少
  • AES 高级加密标准 eg:钥匙串

应用模式:

1.ECB
2.CBC 密码分组链接模式 , 还需要一个初始化的向量
保证数据完整性:应用场景防止别人窃听。
为啥要这个向量呢?
集合中的向量多变性。

1.ECB方式:

mkdir 加密文件夹
vi abc.txt
按键:i进入编辑模式-》 进入之后打一堆数字,点击esc-》光标订到有字的一行,按‘yy’,到下一行点击'p',按:wq退出。

openssl enc -des-ecb -K 616263 -nosalt -in abc.txt -out msg1.bin
xxd msg1.bin
1 2

每八个字节为一块,因为是64位。

2.CBC 密码分组链接模式

6
openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in abc.txt -out msg5.bin
xxd msg5.bin
7
openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in abc.txt -out msg6.bin
xxd msg6.bin
8

TODO思考:

5
openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in abc.txt -out msg3.bin
xxd msg3.bin
4
openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -in abc.txt -out msg4.bin
xxd msg4.bin
3

为什么这个只有两块进行了关联?多加一行的情况下就是三个块进行了关联?

    //AES -- ECB 加密
    NSString * key = @"abc";
    NSLog(@"加密的结果:%@",[[EncryptionTools sharedEncryptionTools] encryptString:@"hello" keyString:key iv:nil]);
    // 解密 : d1QG4T2tivoi0Kiu3NEmZQ==
    NSLog(@"解密之后的结果:%@",[[EncryptionTools sharedEncryptionTools] decryptString:@"d1QG4T2tivoi0Kiu3NEmZQ==" keyString:key iv:nil]);

输出结果:

2019-07-18 16:33:39.848656+0800 对称加密算法那[1289:600762] 加密的结果:d1QG4T2tivoi0Kiu3NEmZQ==
2019-07-18 16:33:39.848733+0800 对称加密算法那[1289:600762] 解密之后的结果:hello

验证:

9
NSString * key = @"abc";
uint8_t iv[8] = {1,2,3,4,5,6,1,0};
NSData * ivDate = [NSData dataWithBytes:iv length:sizeof(iv)];
NSString * pwd =  [[EncryptionTools sharedEncryptionTools] encryptString:@"hello" keyString:key iv:ivDate];
NSLog(@"%@",pwd);
NSString * dpwd = [[EncryptionTools sharedEncryptionTools] decryptString:@"4izoPUtnuM1Jsc5uQkDQyw==" keyString:key iv:ivDate];
NSLog(@"%@",dpwd);

输出结果:

2019-07-18 16:44:45.461009+0800 对称加密算法那[1295:603753] 4izoPUtnuM1Jsc5uQkDQyw==
2019-07-18 16:44:45.461112+0800 对称加密算法那[1295:603753] hello

终端验证:

10
 CCCrypt 对称加密算法核心函数(加密/解密)
 参数:
 1.kCCEncrypt 加密/kCCDecrypt 解密
 2.加密算法,默认是AES
 3.加密方案:ECB/CBC
    kCCOptionPKCS7Padding                       CBC加密
    kCCOptionPKCS7Padding | kCCOptionECBMode    ECB加密
 
 4.加密密钥
 5.密钥长度
 6.iv 初始化向量,ECB不需要指定
 7.加密的数据
 8.加密的数据的长度
 9.密文的内存地址
 10.密文缓冲区的大小
 11.加密结果大小

参考链接:

1.EncryptionTools
2.Base64编码、MD5、SHA1-SHA512、HMAC(SHA1-SHA512)

相关文章

  • https交互流程简述

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

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

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

  • 加密算法的应用

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

  • 学习笔记:HTTPS协议原理

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

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

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

  • https传输过程

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

  • 加密算法的理解

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

  • 加密相关

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

  • 对称加密和非对称加密

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

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

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

网友评论

      本文标题:对称加密

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