zoukankan      html  css  js  c++  java
  • 使用openssl在命令行加密

    对于需要在应用软件中进行加密编程的开发者,通过命令行把基本的加密操作做一遍是很有意义的。openssl支持在命令行进行各种基本加密算法的操作。这些操作过程无需编程,其命令参数与程序函数调用加密的参数有着很好的直接对应关系。这些加密操作要素在各种不同的硬件、操作系统平台、加密软件库上是通用的。我们也可以直接在脚本程序中使用这些命令行的加密操作。由于无需编程,openssl自身又经过了较大范围、较长时间的实际应用检验,所以这里的加解密结果也可以作为自编程序的测试基准使用。

    openssl官网上提供了源代码下载,在各种主流的OS平台下均不难编译。Linux平台一般内置了openssl软件,在网上很容易找到编译好的Windows版本安装包。

    Openssl命令行操作的一般格式是:

    openssl  加密操作类型  算法名称(及工作模式)  密钥 盐值  输入数据  输出数据

    例如,用下面的openssl命令行加密a.txt,结果放在b.bin文件中。

    openssl enc -aes-128-ecb -K 000102030405060708090A0B0C0D0E0F -in a.txt -out b.bin -p
    当前目录下会多出b.bin文件,同时屏幕会给出如下两行输出:
    salt=1800000021000000
    key=000102030405060708090A0B0C0D0E0F</P>

    参数及输出解释如下:

    enc 表示执行对称加密操作;

    -aes-128-ecb 表示使用128位AES算法,ECB工作模式;

    -K 0001......0F 表示加密使用的密钥为十六进制000102030405060708090A0B0C0D0E0F;

    -in和-out指明输入和输出文件名;

    -p表示屏幕打印加密所使用的密钥key、初始向量iv、盐值salt等信息。由于ECB模式不使用初始向量,所以这里没有iv值的信息。

    明确这些参数的含义,各参数的使用要求,是设计应用程序加密功能所必需的。关于openssl本身的命令行参考,openssl文档有详尽的描述。需要中文的可以参阅赵春平所著《openssl编程》,这本书开放了电子文档的下载,openssl命令行讲解在该书的后面第三十二章。

  • 相关阅读:
    C# 获取文件名、无后缀文件名、扩展名
    navicat for oracle 导入xlsx文件提示无法打开xlsx文件
    复制的文件不能粘贴到远程的服务器上
    使用.bat 批量将部分文件迁移到新的路径下
    sql sever 查询用户所有的表和各个表数据量
    orecle 查询数量 union合并 的排序问题
    oracle 如何将带有,的一列分成多列
    java中selenium判断某个元素是否存在
    docker安装Ubuntu以及ssh连接
    Java8 将List<JavaBean>中某个属性取出来为单独的一个集合List<String>
  • 原文地址:https://www.cnblogs.com/kodefun/p/4665601.html
Copyright © 2011-2022 走看看