密码-openssl加密解密使用

目录

1.加密技术介绍:

2.openssl 命令 

4.1.dgst(摘要命令)

4.2.enc(对称加密命令)


OpenSSL整个软件包大概可以分成三个主要的功能部分:

1.密码算法库

2.SSL协议库

3. 应用程序

因为我在打靶机过程中涉及到openssl的加密解密,所有写下了这篇关于openssl加密解密的文章

1.加密技术介绍:

加密技术包括两个元素:

算法和密钥。算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种钥匙。密钥加密技术的密码体制分为对称密钥体制非对称密钥体制两种。

1.对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥(加密解密密钥相同

2.与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥 (privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。(加密公钥,解密私钥;加密私钥,解密公钥

2.openssl 命令 

4.1.dgst(摘要命令)

消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密

openssl dgst 支持的加密类型
blake2b512        blake2s256        md4               md5               
rmd160            sha1              sha224            sha256            
sha3-224          sha3-256          sha3-384          sha3-512          
sha384            sha512            sha512-224        sha512-256        
shake128          shake256          sm3

常用参数:
-out filename:将摘要的内容保存到指定文件中
-[md5|md4|md2|sha1|sha|mdc2|ripemd160|dss1] :指定一种摘要算法

 加密:

echo -n '123456' | openssl dgst -md5

-n 是为了去除换行符对加密结果的影响 

该命令可以用其他代替如:md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum

4.2.enc(对称加密命令)

openssL作对称加密需要使用其子命令enc,其用法为:

常规选项:
 -help 显示此摘要
 -list 列出密码
 -ciphers -list 的别名
 -e 加密
 -d 解密
 -p 打印 iv/key
 -P 打印 iv/key 并退出
 -engine val 使用引擎,可能是硬件设备

输入选项:
 -in infile 输入文件
 -k val 密码
 -kfile infile 从文件中读取密码

输出选项:
 -out outfile 输出文件
 -pass val 密码短语源
 -v 详细输出
 -a Base64 编码/解码,取决于加密标志
 -base64 与选项 -a 相同
 -A 与 -[base64|a] 一起使用,将 base64 缓冲区指定为单行

加密选项:
 -nopad 禁用标准块填充
 -salt 在 KDF 中使用盐(默认)
 -nosalt 不要在 KDF 中使用盐
 -debug 打印调试信息
 -bufsize val 缓冲区大小
 -K val 原始密钥,十六进制
 -S val 盐,十六进制
 -iv 十六进制的 val IV
 -md val 使用指定的摘要从密码创建密钥
 -iter +int 指定迭代次数并强制使用PBKDF2
                     默认值:10000
 -pbkdf2 使用基于密码的密钥派生函数 2 (PBKDF2)
                     使用 -iter 将迭代计数从 10000 更改为
 -none 不加密
 -* 任何支持的密码

随机状态选项:
 -rand val 将给定文件加载到随机数生成器中
 -writerand outfile 将随机数据写入指定文件

提供商选项:
 -provider-path val 提供程序加载路径(如果需要,必须位于“provider”参数之前)
 -provider val 要加载的提供程序(可以指定多次)
 -propquery val 获取算法时使用的属性查询



openssl enc支持的加密类型

Cipher commands (see the `enc' command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb       
aes-256-cbc       aes-256-ecb       aria-128-cbc      aria-128-cfb      
aria-128-cfb1     aria-128-cfb8     aria-128-ctr      aria-128-ecb      
aria-128-ofb      aria-192-cbc      aria-192-cfb      aria-192-cfb1     
aria-192-cfb8     aria-192-ctr      aria-192-ecb      aria-192-ofb      
aria-256-cbc      aria-256-cfb      aria-256-cfb1     aria-256-cfb8     
aria-256-ctr      aria-256-ecb      aria-256-ofb      base64            
bf                bf-cbc            bf-cfb            bf-ecb            
bf-ofb            camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  
camellia-192-ecb  camellia-256-cbc  camellia-256-ecb  cast              
cast-cbc          cast5-cbc         cast5-cfb         cast5-ecb         
cast5-ofb         des               des-cbc           des-cfb           
des-ecb           des-ede           des-ede-cbc       des-ede-cfb       
des-ede-ofb       des-ede3          des-ede3-cbc      des-ede3-cfb      
des-ede3-ofb      des-ofb           des3              desx              
rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc           
rc2-cfb           rc2-ecb           rc2-ofb           rc4               
rc4-40            seed              seed-cbc          seed-cfb          
seed-ecb          seed-ofb          sm4-cbc           sm4-cfb           
sm4-ctr           sm4-ecb           sm4-ofb           


加密:

OpenSSL 可用密码或者秘钥方式进行加密:

密码:

加密:

openssl enc -aes-256-cbc -salt -in input.txt -out encrypted.dat

 解密:

openssl enc -d -aes-256-cbc -in encrypted.dat -out decrypted.txt

密钥:(密钥解密的关键,1.有密文,2.有密钥,3.知道加密算法)

  1. 使用 -pbkdf2 参数进行加密:

    openssl enc -aes-256-cbc -salt -pbkdf2 -a -in input.txt -out encrypted.dat

    -a 将加密后的结果base64编码

  2. 使用 -pbkdf2 参数进行解密:

    openssl enc -d -aes-256-cbc -pbkdf2 -in -a encrypted.dat -out decrypted.txt

        -a 先bese64解码再解密 

通过使用 -pbkdf2 参数,可以改善密钥派生的安全性,并减少潜在的安全风险。请记得在加密和解密过程中都使用 -pbkdf2 参数以确保安全性。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值