ecparam

  • ecparam指令通过用椭圆曲线加密方式,生成ec密钥,可以指定参数
openssl ecparam [-inform DER|PEM] [-outform DER|PEM] [-in filename] [-out filename][-noout] [-text] [-C] [-check] [-name arg] [-list_curve] [-conv_form arg] [-param_enc arg][-no_seed] [-rand file(s)] [-genkey] [-engine id]
  • -inform PEM|DER::输入文件格式,DER或者PEM格式。DER格式采用ASN1的DER标准格式。一般用的多的都是PEM格式,就是base64编码格式。
  • -outform DER|PEM:输出文件格式,DER或者PEM格式。
  • -in filename:输入的椭圆曲线密钥文件,默认为标准输入。
  • -out filename:椭圆曲线密钥输出文件,默认为标准输出。
  • -noout:不打印参数编码的版本信息。-text:打印椭圆曲线密钥参数信息值。
  • -C:以C语言风格打印信息。
  • -check:检查椭圆曲线密钥参数。
  • -name arg:采用短名字。
  • -list_curve:打印所有可用的短名字。
  • -param_out:指定参数编码方法,可以是named_curve和explicit,默认为named_curve。
  • -conv_form arg:指定信息存放方式,可以是compressed、uncompressed或者hybrid,默认为compressed。
  • -no_seed:如果-param_enc指定编码方式为explicit,不采用随机数种子。
  • -rand file(s):随机数产生种子。
  • -genkey:生成椭圆曲线密钥参数。
  • -engine id:指定硬件引擎。

OpenSSL目前不能够产生新的曲线算法,B命令仅仅能够从知道的曲线中产生EC参数。

用曲线'prime192v1'产生EC参数:

openssl ecparam -out ec_param.pem -name prime192v1

用明确的参数来产生EC参数:

openssl ecparam -out ec_param.pem -name prime192v1 -param_enc explicit

验证给出的EC参数:

openssl ecparam -in ec_param.pem -check

创建EC参数和私钥文件:

openssl ecparam -out ec_key.pem -name prime192v1 -genkey

改变编码为'compressed':

openssl ecparam -in ec_in.pem -out ec_out.pem -conv_form compressed

打印EC参数到标准输出中:

openssl ecparam -in ec_param.pem -noout -text

ecparam的主要功能我认为是可以根据想使用的椭圆曲线参数来指定编码方式,生成相应的私钥文件

ec

  • 椭圆曲线密钥处理工具。它可以转换不同的格式以及打印相对应的组件信息值。
  • 用法:
     openssl ec [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] [-passin arg][-passout arg] [-text] [-noout] [-param_out] [-conv_form arg] [-pubin] [-pubout] [-param_enc arg][-engine id] [-des] [-des3] [-idea]
  • -inform PEM|DER:

    输入文件格式,DER或者PEM格式。DER选项是一个私钥,它用ASN。1DER编码的SEC1私钥文件。当为公钥时,用RFC3280指定的SubjectPublicKeyInfo结构。默认的是PEM格式,它也接受PKCS#8格式的私钥。
  • -outform DER|PEM:

    输出文件格式,DER或者PEM格式。
  • -in filename:

    输入的椭圆曲线密钥文件,默认为标准输入。
  • -out filename:

    椭圆曲线密钥输出文件,默认为标准输出。
  • -passin arg:

    指定私钥包含口令存放方式。
  • -passout arg:

    输出文件口令保护存放方式。
  • -text:

    打印所有信息。
  • -noout:

    不打印信息。
  • -param_out:

    指定参数编码方法,可以是named_curve和explicit,默认为named_curve。
  • -conv_form arg:

    指定信息存放方式,可以是compressed、uncompressed或者hybrid,默认为compressed。
  • -pubin:

    设置此选项后,从输入文件中读取公钥值,默认读取的是私钥值。
  • -pubout:

    设置此选项后,保存公钥值到输出文件中,默认的是保存私钥值到输出文件中。
  • -param_enc arg:

    指定椭圆曲线的编码方式。它的值为可以为B<named_curve>,EC参数被OID所指定;它的另一个值为B,EC参数被明确的给出(RFC3279中定义的EC参数结构)。默认的值是B<named_curve>。在RFC3279中指定B和 B众二选一。
  • -engine id:

    指定引擎。 -des ,-des3, -idea, -aes128, -aes192, -aes256,-camellia128,
  • -camellia192, -camellia256:

    指定的私钥保护加密算法。会提示输入口令。如果没有指定其中的一种,则密钥用简单的文本形式写出。

例子

创建EC参数和私钥文件:

openssl ecparam -out ec_prikey.pem -name prime192v1 –genkey

2、对私钥进行口令保护:

openssl ec -in ec_prikey.pem -des -out ec_prikey.pemopenssl
ec -in ec_prikey.pem -des -passout pass:"123456" -out ec_prikey.pem

3、从私钥提取公钥

openssl ec -in ec_prikey.pem -pubout -out ec_pubkey.pem

4、查看私钥信息

openssl ec -in ec_prikey.pem -text

5、查看公钥信息

openssl ec -in ec_pubkey.pem -pubin -text

6、pem为der

openssl ec -in ec_prikey.pem -outform der -out ec_prikey.der

ec命令我感觉是ecparam命令的扩展,可以从ecparam命令中提取公钥,而且可以对私钥进行加密。

errstr

  • errstr命令用于查询错误代码
  • 语法
errstr [-stats] <errno>
  • 选项
-stats:打印哈希表状态
errno:错误号
  • 查看错误信息
错误提示:27594:error:2006D080:lib(32):func(109):reason(128):bss_file.c:107:

openssl errstr 2006D080

errstr用于查看错误码信息

ripmd160

  • RIPEMD(RACE原始完整性校验讯息摘要)是一种加密哈希函数。

  • RIPEMD160哈希值的输出值一般是16进制的字符串。而16进制字符串,每两个字符占一个字节。我们知道,一个字节=8bit.所以使用ripemd160加密函数所得到的是一个160bit的值。

  • openssl dgst -ripemd160 test.txt

    对test.txt文件取hash值。



    camellia-128-ecb

    一种加密算法



    用于enc指令之下

补充enc

enc  

对称加密算法工具。它能够运用块或者流算法对数据加/解密。还能够把加密/接密,还可以把结果进行base64编码。

openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]123

  • 生成一个密钥,如果加密时使用了口令,则解密也要使用口令,arg如下所示:
  • -pass pass:"123" #密码是123
  • -pass pass:123 #密码是123
  • -pass evn:VAR #密码从环境变量VAR中去
  • -pass file:p.txt #密码从文件p.txt第一行取,不包括换行符,注意DOS格式的^M及回车符。
  • -pass fd:3 #密码从文件描述符3中读
  • -pass stdin#标准输入123456
  • -e —— 加密,二选一
  • -d —— 解密,二选一
  • -a/-base64 —— 加密时设置结果以base64编码,,解密时设置输入为base64
  • -A ——加密时设置结果以base64编码成一行,解密时设置输入为一行base64
  • -K key —— 加密秘钥,16进制
  • -iv IV ——初始向量,16进制
  • -S salt ——指定16进制盐值
  • -salt ——带有随机盐值 二选一
  • -z ——是否压缩,需要编译时选择了zlib库
  • -md digstname —— 摘要算法,当没有提供密钥时候,用于从口令中生成一个密钥,默认md5-p ——打印出使用的salt、口令以及初始化向量IV。二选一
  • -P ——打印出使用的salt、口令以及初始化向量IV。不做加解密,二选一
  • -bufsize number ——缓冲区大小
  • -nopad ——无填充
  • -debug ——打印调试信息
  • -none ——不执行加 解密
  • -engine id ——引擎-cihername

//加密(提供密钥)

$openssl enc -aes-128-cbc -e -K 000 -iv 000 -in test.txt -out test.cipher -a -A -p

//解密

$openssl enc -aes-128-cbc -d -K 000 -iv 000 -in test.ciphet -a -A -out test.plain -p

//加密(提供口令)

$openssl enc -aes-128-cbc -e -pass pass:123456 -S a1bec3d4e5f6 -salt -md sha1 -iv 000 in test.txt -out test.cipher -a -A -p

//解密

$openssl enc -aes-128-cbc -d -pass pass:123456 -S a1bec3d4e5f6 -salt -md sha1 -iv 000 in test.cipher -out test.plain -a -A -p

camellia-192-ecb 与 camellia-192-cbc

同上

openssl ec/ecparam/errstr/ripemd160/camellia-128-ecb/camellia-192-cbc/camellia-192-ecb3条指令及1个哈希算法3个加密算法的学习的更多相关文章

  1. Openssl ec命令

    一.简介 椭圆曲线密钥处理工具 二.语法 openssl ec [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] ...

  2. openssl evp 哈希算法(md5,sha1,sha256)

    1. 简述 openssl提供了丰富密码学工具,一些常用的哈希算法 比如md5,sha 可以直接用提供的md5.h ,sha.h 接口使用: 为了方便开发者使用,openssl 又提供了一个EVP, ...

  3. [转]<加密算法c#>——— 3DES加密之ECB模式 和 CBC模式

    本文转自:http://www.cnblogs.com/qq278360339/archive/2013/06/05/3119222.html 最近 一个项目.net 要调用JAVA的WEB SERV ...

  4. openssl详解

    openssl详解 摘自:https://blog.csdn.net/liguangxianbin/article/details/79665100 目录 目录 第一章 前言 第二章 证书 第三章 加 ...

  5. Linux下生成openssl自签名证书

    校验证书是否被 CA 证书签名,正确的情况: $ openssl verify -CAfile /etc/kubernetes/cert/ca.pem /etc/kubernetes/cert/kub ...

  6. linux中用户、组的管理(密码管理、权限管理及其修改用户、组)(转)

    process(进程) 1 计算资源 权限 用户(获取资源或服务的凭证或标识) 用户,容器,关联权限:用户组(标识符),方便地指派权限 2 用户.组.权限   安全上下文(secure context ...

  7. .NET中的加密算法总结(自定义加密Helper类续)

    1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发 ...

  8. Google Guava的5个鲜为人知的特性

    译文出处: 花名有孚   原文出处:takipi.com Google Guava有哪些比较冷门但却又实用的特性呢? 它是最流行的开源库之一,你应该听过它的大名,它诞生的地方正是人们举办真正的魁地奇比 ...

  9. 2.SDL规范文档

    01.安全设计Checklist 输入验证 校验跨信任边界传递的不可信数据(策略检查数据合法性,含白名单机制等)格式化字符串时,依然要检验用户输入的合法性,避免可造成系统信息泄露或者拒绝服务 禁止向J ...

随机推荐

  1. Layman 解决MUI 软键盘弹起挤压页面问题

    问题:在使用mui和H5+进行移动端开发的时候,经常会遇见需要用户输入的情况 当input获取焦点弹起软键盘的时候,经常会遇见软键盘挤压页面.软键盘遮挡输入框等一系列问题: 原因:造成这种现象的原因是 ...

  2. 使用 PL/SQL Developer 导入 .sql 文件

    操作系统:Windows 10 x64 PL/SQL Developer Version 12.0.7.1837 (64 bit) 01.226959 第一节:下载 Oracle Database X ...

  3. 【题解】[SHOI2007]善意的投票 / [JLOI2010]冠军调查

    Link \(\text{Solution:}\) 我们令源点和汇点分别为睡觉和不睡觉这两种互斥的决策点.把小朋友看成点,问题转化为最小割. 每一个小朋友对自己的意愿指向的汇点/源点.容量为\(1.\ ...

  4. 满屏的try-catch,不瘆得慌?

    持续原创输出,点击上方蓝字关注我 目录 前言 Spring Boot 版本 全局统一异常处理的前世今生 Spring Boot的异常如何分类? 如何统一异常处理? 异常匹配的顺序是什么? 总结 前言 ...

  5. 达梦数据库_DM8配置实时主备

    1.环境说明 准备三台机器DM_HD1.DM_HD11.DM_SH,DM_HD1和DM_HD11用来部署主备库,DM_SH用来部署确认监视器.其中DM_HD1和DM_HD11配置两块网卡,一块接入内部 ...

  6. Windows10系统下wsappx占用CPU资源过高?wsappx是什么?如何关闭wsappx进程?

    在Windows10系统开机的时候,wsappx进程占用的CPU资源非常高,导致电脑运行速度缓慢,那么我们如何关闭wsappx进程,让电脑加快运行速度呢?下面就一起来看一下操作的方法吧. [现象] 1 ...

  7. JAVA对象头详解(含32位虚拟机与64位虚拟机)

    为什么要学习Java对象头 学习Java对象头主要是为了解synchronized底层原理,synchronized锁升级过程,Java并发编程等. JAVA对象头 由于Java面向对象的思想,在JV ...

  8. 关于ptype_all和pypte_base中的pt_prev的说明[转]

    不知道原帖,我是从这里看到了,解决了迷惑我很久的疑问,抄过来. 看见noble_shi兄弟"关于net_rx_action函数的若干问题"贴中关于pt_prev的问题, 本来想在论 ...

  9. 多测师全方位面试题腾讯 _自动化面试题_高级讲师肖sir

    作答注意:候选人可以两题都做,也可以两题任选一题做即可. 笔试题一:1.查询 https://www.newsmth.net/nForum/#!board/PieLove2.获取发贴时间是2020年8 ...

  10. 【组合计数】visit

    题目大意 从 \((0,0)\) 开始,每次只可走上下左右一个单位长度,可走重复路,求第 \(T\) 步正好走到 \((n,m)\) 的方案数. 答案要求对 \(MOD\) 取模,\(MOD\) 保证 ...