openssl基础使用
openssl命令格式
选项说明:
-ciphername:对称算法名字,此命令有两种适用方式:-ciphername方式或者省略enc直接用ciphername。
-in filename:要加密/解密的输入文件,缺省为标准输入。
-out filename:要加密/解密的输出文件,缺省为标准输出。
-pass arg:输入文件如果有密码保护,指定密码来源。
-salt:为了和openssl0.9.5以后的版本兼容,默认设置。这是加密过后放在密码最前面的一段字符串,用途也是为了让破解更难。
-nosalt:和openssl0.9.5以前的版本兼容,就设置这个选项。
-e:进行加密操作,默认操作。
-d:进行解密操作。
-p:打印出使用的salt、口令以及初始化向量IV。
-P:打印使用的salt、口令以及IV,不做加密和解密操作,直接退出。
-v:打印附加信息值。
-nopad:没有数据填充(主要用于非对称加解密操作)。
-debug:打印调试信息值。
-a:当进行加解密时,它只对数据进行运算,有时需要进行base64转换。设置此选项后,加密结果进行base64编码;解密前先进行base64解码。
-A:默认情况下,base64编码结果在文件中是多行的。如果要将生成的结果在文件中只有一行,需设置此选项;解密时,必须采用同样的设置,否则读取数据时会出错。
-base64:当进行加解密时,它只对数据进行运算,有时需要进行base64转换。设置此选项后,加密结果进行base64编码;解密前先进行base64解码。
-z:压缩数据(前提是编译的时候加进去了zlib库)。
-bufsize number:设置I/O操作的缓冲区大小,因为一个文件可能很大,每次读取的数据是有限的。
-k password:指定加密口令,不设置此项时,程序会提示用户输入口令。
-kfile filename:指定口令存放的文件。
-K key:用的实际密钥值:这个必须被提出,它是一个16进制的输入口令。如果没有这个选项,IV必须用B<-iv>选项指定。当key和密钥都指定时,用-K选项给定的key将会被使用,而使用密钥来产生初始化向量IV。不建议两者都指定。
-S hsalt:salt的值为16进制的。
-iv IV:实际上使用的初始化向量,这个必须被提出,它是一个16进制的初始化向量。当仅仅用-K选项指定了key,IV必须明确的定义。当一个密钥用其中一个选项所指定,IV将会与偶这个口令值来产生。
-md digest:摘要算法。
-none:不对数据进行加解密操作。
-id:硬件引擎。
登陆进入Centos系统,并创建用于加密的文件test.txt
对称加密
rc4加解密
加密
openssl enc -e -rc4 -in test.txt -out test_rc4.enc
解密
openssl enc -d -rc4 -in test_rc4.enc -out test_rc4.dm
AES加解密
加密
openssl enc -e -aes-128-cbc -a -salt -in test.txt -out test_aes128.enc
解密
openssl enc -d -aes-128-cbc -a -salt -in test_aes128.enc -out test_aes128.d
使用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
非对称加密。
RSA加解密码
生成RSA密钥对
openssl genrsa -out rsa.key 1024
导出公钥
openssl rsa -in rsa.key -pubout -out rsa_pub.key
使用公钥加密文件
openssl rsautl -encrypt -in test.txt -inkey rsa_pub.key -pubin -out test_rsa.enc
使用私解解密文件
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
公钥加解密与私钥加解密
公钥加解密可以将公钥公开所以需要公钥与私钥分别进行加密与解密,私钥加解密只需要使用私钥