本文主要是对称算法的终端演示+代码演示

OpenSSL终端演示
下面主要采用DES、AES和 ECB、CBC两两组合的方式进行演示,涉及的终端命令主要有以下一些
加密
-
AES + ECB加密“hello”字符串echo -n hello | openssl enc -aes-128-ecb -K 616263 -nosalt | base64
-
AES + CBC加密“hello”字符串echo -n hello | openssl enc -aes-128-cbc -iv 0102030405060708 -K 616263 -nosalt | base64
解密
-
AES + ECB解密echo -n d1QG4T2tivoi0Kiu3NEmZQ== | base64 -D | openssl enc -aes-128-ecb -K 616263 -nosalt –d
-
AES + CBC解密echo -n u3W/N816uzFpcg6pZ+kbdg== | base64 -D | openssl enc -aes-128-cbc -iv 0102030405060708 -K 616263 -nosalt –d
1、DES + ECB
加密
-
- vi abc.txt
000000000000
111111111111
222222222222
000000000000
111111111111
222222222222
000000000000
111111111111
222222222222
000000000000
111111111111
222222222222
000000000000
111111111111
222222222222
000000000000
111111111111
222222222222
-
对称加密(默认会加盐):
openssl enc -des-ecb -K 016263 -nosalt -in abc.txt -out msg1.bin-
enc: 表示加密方式,即对称加密 -
msg1.bin: 二进制文件
-
-
查看二进制文件:
xxd msg1.bin

将第二个重复的前两个`00,改成88`
000000000000
111111111111
222222222222
880000000000
111111111111
222222222222
000000000000
......
查看此时的加密后密文二进制,与上面进行对比

-
变化:
931f 4a54 79bf 730f 4453 2df5 e152 38f1变成了c7e1 1de2 c778 9df6 4d79 8bec 04ad 08c4。说明修改两个字符,其最小单位16字节 -
如果修改
1个字符,最小单位是8个字节。所以加密过程中,最低是8字节
2、DES + CBC
-
vi abc.txt(内容与1中相同)
-
加密:
openssl enc -des-cbc -K 616263 -iv 0102030405060708 -nosalt -in abc.txt -out msg3.bin -
修改一个字符,获取 msg4.bin
-
-iv:向量的表示方式 -
616263:加密的key,换成 abc 也是可以的
-
-
与ECB模式对比:从第2个开始,其二进制就不同了(CBC是链式加密)
iOS开发:对称加密算法详解与安全实践

本文深入探讨了iOS中的对称加密算法,包括OpenSSL终端的DES和AES加密解密演示,以及代码实现。文章指出直接使用系统函数`CCCrypt`存在明文泄漏的安全风险,并提供了安全实践建议,如加密封装和方法名混淆,以保障应用的数据安全性。
最低0.47元/天 解锁文章
255





