使用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命令行讲解在该书的后面第三十二章。
使用openssl在命令行加密的更多相关文章
- openssl常用命令行汇总
openssl常用命令行汇总 随机数 openssl rand -out rand.dat -base64 32 摘要 直接做摘要 openssl dgst -sha1 -out dgst.dat p ...
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)(使用OpenSSL的命令行)
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...
- OpenSSL的命令行用法,以及参数大全
c:\openssl\bin>opensslOpenSSL> versionOpenSSL 1.0.2j 26 Sep 2016OpenSSL> https://wiki.opens ...
- [转载]OpenSSL中文手册之命令行详解(未完待续)
声明:OpenSSL之命令行详解是根据卢队长发布在https://blog.csdn.net/as3luyuan123/article/details/16105475的系列文章整理修改而成,我自己 ...
- 用OpenSSL命令行生成证书文件
用OpenSSL命令行生成证书文件 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加 ...
- 命令行工具aspnet_regiis.exe实现加密和解密web.config
命令行工具aspnet_regiis.exe,是一个类似于DOS的命令工具,称之为命令解释器.使用命令行工具加密和解密web.config文件中的数据库连接字符串时,只需要简单的语法命令即可. 加密语 ...
- BitLocker 加密工具挂起和恢复命令行(windows7)
如果你的硬盘使用BitLocker加密了,但是有时候需要高效率的硬盘做某些事情,可以暂时挂起加密,命令行如下方便做个bat. 挂起: manage-bde -protectors -disable C ...
- openssl命令行工具简介 - 指令x509
原文链接: http://blog.csdn.net/allwtg/article/details/4982507 openssl命令行工具简介 - 指令x509 用法: open ...
- 文件批量加密重命名--python脚本AND mysql命令行导入数据库
在考试中学生交上来的报告,需要进行一下文件名加密,这样阅卷老师就不知道是谁的报告了 在百度帮助下,完成了加密和解密脚本, 加密 #!/usr/bin/python # -*- coding: utf- ...
随机推荐
- Dapper ORM
参考地址:https://www.cnblogs.com/lunawzh/p/6607116.html 1.连接语句 var conn = new SqlConnection(Configuratio ...
- SQL数据库查询语言(1)
目录 MySQL数据库 MySQL安装与配置 DDL数据定义语言 创建数据库 查看.删除数据库 修改.备份.恢复数据库 创建表 修改表 MySQL常用数据类型 DML数据操纵语言 Insert语句 m ...
- winform datagridview数据显示不全
如果是内容是汉字,列的宽度设置不够时会自动换行,如果是数字和字母,是不会自动换行的,要把列宽设得足够,整个表格显示不全时,下面会有横向滚动条,如果看不见可能是高度超出了母控件的高度,设得低点就看见了
- Python爬取招聘信息,并且存储到MySQL数据库中
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...
- Struts、Hibernate和Spring的整合
Spring整合Hibernate Spring以其开放性,能与大部分ORM框架良好的整合.这样Spring就能轻松地使用ORM. Spring提供了DAO支持,DA0组件是应用的持久层访问的重要组件 ...
- P2045 方格取数加强版 最大费用最大流
$ \color{#0066ff}{ 题目描述 }$ 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1,1)出发,可以往右或者往下走,最后到达(n,n),每 ...
- SDUT OJ 数据结构实验之二叉树六:哈夫曼编码
数据结构实验之二叉树六:哈夫曼编码 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...
- SDUT OJ 顺序表应用2:多余元素删除之建表算法
顺序表应用2:多余元素删除之建表算法 Time Limit: 3 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Descripti ...
- Servlet完全教程
Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...
- 1、C++学习预备知识
C++在C语言面向过程的编程的基础上增加了类代表的面向对象编程和模板支持的泛型编程. 过程性编程强调的是,算法的过程性,OOP(面向对象编程)强调的是数据,试图让语言来满足问题的要求.其理念是设计与问 ...