iOS密码学-对称加密

2021-08-27  本文已影响0人  沉淀纷飞
截屏2021-10-14 下午8.48.51.png

  之前我们已经研究过RSA,并且RSA非对称加密非对称加密有一对公钥私钥。我们可以对数据用私钥加密用公钥解密,也能用公钥加密用私钥来解密,这就是非对称加密。那什么是对称加密对称加密有哪些呢,又有哪些使用场景呢?

对称加密算法&模式

  对称加密就是明文通过秘钥(key)加密后得到密文,密文通过秘钥解密得到明文。但注意Hash是不是加密算法。常见对称加密算法有DES3DESAES

终端测试指令

加密过程

1、加密过程是先加密,再base64编码
2、解密过程是先base64解码,再解密

DES加密&解密

echo -n "需要加密的字符串" | openssl enc -des-ecb -K "密钥" -nosalt | base64
echo -n "需要解密的字符串" | base64 -D | openssl enc -des-ecb -K "密钥" -nosalt -d
echo -n "需要加密的字符串" | openssl enc -des-cbc -iv "向量" -K "密钥" -nosalt | base64
echo -n "需要加密的字符串" | base64 -D | openssl enc -des-cbc -iv "向量" -K "密钥" -nosalt -d

AES加密&解密

echo -n "需要加密的字符串" | openssl enc -aes-128-ecb -K "密钥" -nosalt | base64
echo -n "需要加密的字符串" | base64 -D | openssl enc -aes-128-ecb -K "密钥" -nosalt -d

[图片上传失败...(image-127fb8-1629994064213)]

echo -n "需要加密的字符串" | openssl enc -aes-128-cbc -iv "向量" -K "密钥" -nosalt | base64
echo -n "需要加密的字符串" | base64 -D | openssl enc -aes-128-cbc -iv "向量" -K "密钥" -nosalt -d

补充:加密跟几何图形关联,加密时增加向量,增加了破解的难度。如果加密强度比较小,生成的结果大小 也比较小。CBC的加密模式通常用于防窃听使用场景 后续的加密依赖前面的数据。

使用终端对文件加密测试

ECB模式

1、终端输入vi abc.txt 创建文件并输入内容
2、终端输入openssl enc -des-ecb -K 61626364 -nosalt -in abc.txt -out message.bin 使用DES的ECB 模式加密并输出二进制文件
3、终端输入cat message.bin 获取二进制文件
4、终端输入xxd message.bin 输出二进制文件
5、终端输入openssl enc -des-ecb -K 61626364 -nosalt -d -in message.bin -out 解密message1.txt 解密二进制文件并输出解密后的文件

CBC模式

1、终端输入vi abc.txt 创建文件并输入内容
2、终端输入openssl enc -des-cbc -K 61626364 -iv 010203040506 -nosalt -in abc.txt -out message.bin 使用DES的CBC模式加密并输出二进制文件
3、终端输入cat message.bin 获取二进制文件
4、终端输入xxd message.bin 输出二进制文件
5、终端输入openssl enc -des-cbc -K 61626364 -iv 010203040506 -nosalt -d -in message.bin -out 解密abc.txt 解密二进制文件并输出解密后的文件


我们将abc.txt文件内容修改比较一下ECB和CBC模式加密得到的二进制的区别

)
通过加密后二进制结果可以看出cbc模式只是修改位置的二进制发生了改变,ECB模式修改位置后面的二进制都发生了改变

代码测试 源码地址


总结:

上一篇 下一篇

猜你喜欢

热点阅读