密码学专题 口令输入的方式

  • 虽然口令的安全性很值得担忧,但是口令在OpenSSL中是经常使用的,这是没有办法替代的一种简易的保护数据的方法。
  • OpenSSL中使用口令的地方很多,比如密钥的加密和解密,等等。OpenSSL的指令提供了多种灵活的口令输入方法,但是,正是因为方法太多了,反而令很多使用者觉得迷惑不解。
  • 在OpenSSL的指令中,通常通过“-pasin”或者“-pasout”的参数来输入口令,这些参数的形式有5种,分别对应5种不同的口令获取途径

1, 提示输入

  • 最简单的,也就是默认的,是从指令行界面提示输入口令。一般来说,如果你没有使用“-pasin”或者“-pasout”指明口令获取方式,如果输入文件或指令要求输入口令,那么就会采用这种方式。这种方式的应用很简单,只要根据提示输入口令即可,但是一般会要求验证一次。
  • 这种输入方法的好处是口令不会在屏幕上以明文显示出来,在一定程度上可以防止恶意的旁人的偷窥。当然它也有不方便的地方,比如没有办法在程序使用脚步自动批处理运行的时候使用,因为它需要交互,这样自然限制了其自动性能。虽然这种方式是默认的,但是如果你非要用“-pasin”指定这种方式,那么可以输入如下面形式的参数:
  • -passin stdin

2,直接输入

  • 直接输入口令的方式可能是最受欢迎的,也是最容易想像的方式,它可以直接在指令参数中输入指令。但是因为OpenSSL灵活的口令获取方式,使得使用者通常被这种容易想像方式迷惑。如果你要使用这种方式,应该使用下面的形式:
  • -passin pass : 123456
  • 但这肯定会使得OpenSSL的指令给你返回错误使用参数的提示。事实上你只需要做多一点点,在口令前面输入“pass:”5个字符。这种方式因为口令是以明文输入的,在屏幕上可见,所以使用的时候一定先要转过头四周看看,确保没有人想盗取你的口令才能进行。

3,环境变量输入

  • 有时候可能需要将口令保存起来重复利用,而你又不太想记住这个复杂的口令,那么可以选择将它存放在环境变量中,使用的时候只要记住环境变量名就可以。对于测试来说,这是一个好方法,这可以使得你所有需要口令的文件都使用相同的口令,免除你痛苦地回忆口令。这种方式的使用首先要求你设置好环境变量,然后输入如下的形式:
  • -passin env:passwdvar
  • 其中的passwdvar就是环境变量名。当然,这种方式的安全性不怎么样,因为环境变量是所有使用相同计算机的人都能看到的,并且是以明文存放。

4,文件输入

  • OpenSSL还提供了从文件获取口令的方式,这种方式指定获取口令的文件名,然后将文件名的第一行作为口令。
  • 如果你同时使用了“-pasin”和“-pasout”参数并且都指定了同一个文件作为口令文件,那么指令就会将第一行作为-pasin的口令,而第二行作为-passout的口令。
  • 这种方式的使用形式如下: -passin file : filename
  • 这里的filename是文件名,当然,必要的时候,需要包含路径。事实上,提供的filename不一定就是文件,可以是设备或其他符合文件I/O操作规范的命名管道。

5,描述符输入

  • 通用的描述符也可以作为一种获取口令的来源
  • 其使用方式如下:-passin fd : number
  • 这里的number是文件描述句柄的编号。这种方式在Windows下的指令行界面下使用似乎并不方便,但是在脚步文件中使用还是可以的。而在Unix系统下,使用就方便得多,比如管道就可以作为一种文件描述符输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习14 模块和包

模块 公共类、函数都可以放在独立的文件中,这样其他多个程序都可以使用,而不必把这些公共性的类、函数等在每个程序中复制一份,这样独立的文件就叫做模块,它们的扩展名为.py 标准库中的模块 使用help查看模块 代码: …

python语句分为_python以什么划分语句块

语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句;在代码前放置空格来缩进语句即可创建语句块,语句块中的每行必须是同样的缩进量;(推荐学习:Python…

Python学习15 正则表达式1

网址 正则表达式测试网址:https://regex101.com/ 概述 正则表达式: 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"…

STL源码剖析 空间配置器 查漏补缺

ptrdiff_t含义 减去两个指针的结果的带符号整数类型ptrdiff_t (Type support) - C 中文开发手册 - 开发者手册 - 云社区 - 腾讯云 std::set_new_handler()函数的理解 关于set_new_handler的理解_wck0617-CSDN博客new分配内存的时候 如果分配的空间不…

python每天定时9点执行_python定时器每天订时执行的实例方法

python定时器,实现每天凌晨3点执行的方法 如下所示:Created on 2018-4-20 例子:每天凌晨3点执行func方法import datetime import threading def func(): print("haha") #如果需要循环调用,就要添加以下方法 timer threading.Timer(86400, fun…

Python学习16 正则表达式2 re模块

re 模块 re 模块: Python的 re 模块实现了正则表达式处理的功能。 导入re模块后,使用findall、search函数可以进行匹配 查找:match和search 多个匹配上的,也只会返回第一个匹配上的 re.match(): 需要特别注意的是&…

STL源码剖析 内存基本处理工具 初始化空间的五个函数

初始化空间的五个函数构造函数 construct()析构函数 destroy()剩余三个底层函数 和 高层函数之间的对应关系如下uninitialized_copy() 对应 copy()uninitialized_fill() 对应 fill()uninitialized_fill_n() 对应 fill_n()使用<memory>使用上述三个底层函数 uninitiali…

单基因gsea_筛到5分的核心基因以后你可以怎么做?

这一次我们从一些已经发表的文章拆解&#xff0c;我们来看看&#xff0c;你找到了一个核心基因以后&#xff0c;你可以怎么做呢&#xff1f;我们就不说那么多废话了&#xff0c;直接用几篇文章的解读来带着大家领会一下如何去进行下一步的分析。Case1&#xff1a;预后标志物免疫…

安卓 原生okhttp使用get与post获取网络数据

网址 https://square.github.io/okhttp/ 配置 依赖 在module的build.gradle中&#xff1a; implementation com.squareup.okhttp3:okhttp:3.14.7implementation com.squareup.okio:okio:1.17.5AndroidManifest.xml <uses-permission android:name"android.permissi…

STL源码剖析 迭代器的概念和traits编程技法

迭代器&#xff1a;依序巡防某个聚合物(容器)所含的各个元素&#xff0c;但是不需要暴露这个聚合物的内部表述方式核心思想&#xff1a;将容器和算法分开&#xff0c;彼此独立设计容器和算法的泛型化&#xff0c;均可以使用模板&#xff0c;使用迭代器连接容器和算法例子 templ…

.sql文件如何执行_干货|一条SQL查询语句是如何执行的

作者&#xff1a;wanber链接&#xff1a;https://blog.nowcoder.net/n/9e120e8f1314466bb44fe706b283dc20

STL源码剖析 5中迭代器型别

最常使用的5种迭代器的型别 为 value_type、difference_type、pointer、reference、iterator_category。如果想要自己开发的容器和STL进行适配&#xff0c;就需要定义上述5种类型 iteraor_traits 必须针对传入的型别为 pointer 或者 pointer-to-const设计偏特化版本 template &…

Python学习16 正则表达式3 练习题

用户名匹配 1.用户名匹配&#xff1a;由数字、大小写字母、下划线_、中横线-组成&#xff0c;长度为6-12位&#xff0c;不能以数字开头。 import re usernameab578_-SDF resultre.search(^[a-zA-Z_-][0-9a-zA-Z_-]{5,12}$,username) print(result)邮箱 2.验证输入的邮箱&…

加载tf模型 正确率很低_深度学习模型训练全流程!

↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习&#xff0c;不错过Datawhale干货 作者&#xff1a;黄星源、奉现&#xff0c;Datawhale优秀学习者本文从构建数据验证集、模型训练、模型加载和模型调参四个部分对深度学习中模型训练的全流程进行讲解。一个成…

Python学习17 Turtle库绘图

学习网址&#xff1a;https://docs.python.org/zh-cn/3/library/turtle.html Turtle库 Turtle库是Python语言中一个很流行的绘制图像的函数库&#xff0c;一个小乌龟&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff08;画布中心&#xff09;&#xff0c;(0,0)位置开…

android ros 节点编写_嵌入式的我们为什么要学ROS

前言本来是要写一篇STM32移植ROS的一个小lib库&#xff0c;ROS一般都是需要跑在Linux上的&#xff0c;STM32使用就是当成一个ROS通讯的小节点&#xff0c;但是写文章时间不够&#xff0c;所以就简单做一篇ROS的介绍文章&#xff0c;分享给嵌入式的小伙伴们。ROS现在在机器人领域…

STL源码剖析 __type_traits

traits编程 弥补了C本身的不足STL只对迭代器进行规范制定出了iterator_traits&#xff0c;SGI在此基础上进一步扩展&#xff0c;产生了__type_traits双下划线的含义是这个是SGI内部使用的东西&#xff0c;不属于STL标准iterator_traits 负责萃取迭代器的特性__type_traits负责萃…

java 学生成绩

题目 对学生成绩大于60分的&#xff0c;输出“合格”。低于60分的&#xff0c;输出“不合格” 代码 使用/除法简化代码 package l1_switch_case;import java.util.Scanner;public class SwitchDemo2 {public static void main(String[] args) {Scanner scanner new Scanne…

STL源码剖析 序列式容器|Vector

容器的概观和分类 array 数组 、list 链表、tree树 、stack堆栈、queue队列、hash table散列表、set集合、map映射表根据数据在容器中的排列顺序&#xff0c;将上述数据结构分为序列式和关联式两种类型SGI STL使用内缩方式来表达基层和衍生层之间的关系衍生不是派生&#xff0…

ansible 修改文件变量_Ansible Playbook中的变量与引用

Ansible是一个系列文章&#xff0c;我会尽量以通俗易懂、诙谐幽默的总结方式给大家呈现这些枯燥的知识点&#xff0c;让学习变的有趣一些。Ansible自动化运维前言前面有说到使用playbook来搞一些复杂的功能&#xff0c;我们使用YAML来写playbook&#xff0c;就像我们用其它语言…