使用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- ...
随机推荐
- Intellij IDEA神器那些让人爱不释手的小技巧
完整的IDEA使用教程,GitHub地址: https://github.com/judasn/IntelliJ-IDEA-Tutorial 概述 之前写了一篇介绍IntellIJ IDEA的文章 ...
- Jmeter_Beanshell_使用Java处理JSON块
版权声明:本文为博主原创文章,转载请注明出处. [环境] ①Jmeter版本:3.2,JDK:1.8 ②前置条件:将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该j ...
- Django之跨域请求同源策略
同源策略: 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. 而如果我们要跳过这个策略,也就是说非要跨域请求,那么就需要通过 ...
- 【FAQ】Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServlet
原因: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr ...
- Mysql数据库申请
前段时间大部门下新成立了一个推广百度OCR.文字识别.图像识别等科技能力在金融领域应用的子部门.因为部门刚成立,基础设施和人力都是欠缺的.当时分到我们部门的任务是抽调一个人做新部门主站前端开发工作.本 ...
- struts2配置文件中的method={1}详解
struts.xml中的配置: <!-- 配置用户模块的action --> <action name="user_*" class="userActi ...
- 跟我一起读postgresql源码(二)——Parser(查询分析模块)
上篇博客简要的介绍了下psql命令行客户端的前台代码.这一次,我们来看看后台的代码吧. 十分不好意思的是,上篇博客我们只说明了前台登陆的代码,没有介绍前台登陆过程中,后台是如何工作的.即:后台接到前台 ...
- windows下Idea结合maven开发spark和本地调试
本人的开发环境: 1.虚拟机centos 6.5 2.jdk 1.8 3.spark2.2.0 4.scala 2.11.8 5.maven 3.5.2 在开发和搭环境时必须注意版本兼容的问题 ...
- 一个很棒的PHP缓存类,收藏下
<?php class Cache { /** 缓存目录 **/ var $CacheDir = './cache'; /** 缓存的文件 **/ var $CacheFile = ''; /* ...
- Application received signal SIGABRT
Application received signal SIGABRT (null) (( 0 CoreFoundation 0x0000000182bbadc8 <redacted> + ...