openssl基础使用
OPENSSL基础使用
实验目的
掌握常见的密码学算法应用,包含des aes md5 rsa等掌握常见的密码学算法应用,包含des AES MD5 RSA等
实验环境
一台Centos 7.2 已经安装openssl组件
实验原理
openssl是Linux内置的一款开源工具,实现了常见的密码算法与应用。通过openssl操作,完成各种密码算法的应用。
实验步骤
创建一个文件,用于被加密,文件内容为12345,文件名为test.txt
echo 12345 >test.txt |
一、对称加密
1、使用rc4加解密
加密openssl enc -e -rc4 -in test.txt -out test_rc4.txt
解密openssl enc -d -rc4 -in test_rc4.enc -out test_rc4.dm
2、使用AES加解密
openssl enc -e -aes-128-cbc -a -salt -in test.txt -out test_aes128.enc |
-a
:这个选项表示以Base64编码格式输出加密后的数据。Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于加密后的数据可能包含无法直接在文本文件中存储的字符(如控制字符或二进制零),所以通常会用Base64编码来安全地表示这些加密数据。-salt
:这个选项指示OpenSSL在加密过程中使用一个随机的盐值(salt)。盐值是一个随机数据块,与加密密钥结合使用来增加加密的安全性。每次加密相同的数据时,如果使用了不同的盐值,就会产生不同的加密输出,这有助于抵抗某些类型的攻击,如字典攻击。
解密
openssl enc -d -aes-128-cbc -a -salt -in test_aes128.enc -out test_aes128.d |
3、使用3DES加解密
加密openssl enc -e -des3 -a -salt -in test.txt -out test_des3.enc
解密openssl enc -d -des3 -a -salt -in test_des3.enc -out test_des3.d
二、非对称加密
1、RSA加解密码
生成RSA密钥对
openssl genrsa -out rsa.key 1024
敲错了。。。导出公钥
openssl rsa -in rsa.key -pubout -out rsa_pub.key |
-pubout
:这个选项告诉openssl rsa
命令执行提取公钥的操作。默认情况下,openssl rsa
命令用于处理私钥,但加上-pubout
选项后,它会从私钥中提取出对应的公钥。
使用公钥加密文件
openssl rsautl -encrypt -in test.txt -inkey rsa_pub.key -pubin -out test_rsa.enc |
-pubin
:这个选项告诉openssl rsautl
命令输入密钥是一个公钥。在大多数情况下,当使用-inkey
选项时,OpenSSL会尝试根据密钥的内容自动判断它是公钥还是私钥。然而,在某些情况下(尤其是当密钥文件没有标准的公钥或私钥头部时),明确指定-pubin
可以避免混淆。
使用私解解密文件
openssl rsautl -decrypt -in test_rsa.enc -inkey rsa.key -out test_rsa.c |
使用公钥解密报错
openssl rsautl -decrypt -in test_rsa.enc -inkey rsa_pub.key -out test_rsa.c |
实验总结
通过实验的openssl 实现对称加解密与非对称加解密两种基线的加解密功能。
思考对称与非对称加解密码的流程上有何不同?为什么?
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 You_zip!