如何在Linux中产生,加密或解密随机密码

如何在Linux中产生,加密或解密随机密码,第1张

1. 使用命令 pwgen 来生成一个长度为 10 个字符的独特的随机密码。假如你还没有安装 pwgen,请使用 Apt 或 YUM 等包管理器来安装它。

$ pwgen 101

生成一个独特的随机密码

一口气生成若干组长度为 50 个字符的唯一的随机密码!

$ pwgen 50

生成多组随机密码

2. 你还可以使用 makepasswd 来每次生成一个给定长度的独特的随机密码。在你把玩 makepasswd 命令之前,请确保你已经安装了它。如若没有安装它,试试使用 Apt 或 YUM 包管理器来安装 makepasswd这个软件包。

生成一个长度为 10 个字符的随机密码。该命令产生的密码的长度默认为 10。

$ makepasswd

使用 makepasswd 生成独特的密码

生成一个长度为 50 个字符的随机密码。

$ makepasswd --char50

生成长度为 50 的密码

生成 7 个长度为 20 个字符的随机密码。

$ makepasswd --char20--count 7

3. 使用带“盐”的 Crypt(注:这里应该指的是一个函数,可以参考这里 ) 来加密一个密码。提供手动或自动添加 “盐”。

对于那些不清楚 盐 的意义的人,这里的 “盐” 指的是一个随机数据,它作为密码生成函数的一个额外的输入, 目的是保护密码免受词典攻击。

在执行下面的 *** 作前,请确保你已经安装了 mkpasswd。

下面的命令将带 “盐” 加密一个密码。“盐” 的值是随机自动生成的。所以每次你运行下面的命令时,都将产生不同的输出,因为它每次接受了随机取值的 “盐”。

$ mkpasswd tecmint

使用 Crypt 来加密密码

现在让我们来手动定义 “盐” 的值。每次它将产生相同的结果。请注意你可以输入任何你想输入的值来作为 “盐” 的值。

$ mkpasswd tecmint -s tt

带“盐”加密密码

另外, mkpasswd 还是交互式的,假如你在命令中没有提供密码,它将主动询问你来输入密码。

4. 使用 aes-256-cbc 加密算法并使用带“盐”的密码(如 “tecmint”) 加密一个字符串(如 “Tecmint-is-a-Linux-Community”)。

# echo Tecmint-is-a-Linux-Community | openssl enc -aes-256-cbc -a -salt -pass pass:tecmint

在 Linux 中加密一个字符串

在上面例子中, echo 命令的输出通过管道传递给了 openssl 命令,使得该输出通过加密编码方式(enc:Encoding with Cipher ) 所加密,这个过程中使用了 aes-256-cbc 加密算法,并附带了密码 (tecmint) 和 “盐” 。

5. 使用 openssl 命令的 -aes-256-cbc 解密选项来解密上面的字符串。

# echo U2FsdGVkX18Zgoc+dfAdpIK58JbcEYFdJBPMINU91DKPeVVrU2k9oXWsgpvpdO/Z | openssl enc -aes-256-cbc -a -d -salt -pass pass:tecmint

在 Linux 中解密字符串

现在就是这些内容了。

JDK有以下几种方法: 1、查找目前所使用的linux下所使用的jdk安装后的目录:echo $JAVA_HOME; 2、获得目前所使用的linux下所使用的jdk的版本java -version; 3、获得所安装后的jdk的版本,在bin目录下输入./java -version即可;

这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e 这里以1.txt为需要被加密的文件。 一、 用oppnssl md5 加密字符串和文件的方法。 1. oppnssl md5 加密字符串的方法 a.手动输入命令及过程如下: #openssl //在终端中输入openssl后回车。 OpenSSL>md5 //输入md5后回车 123456 //接着输入123456,不要输入回车。然后按3次ctrl+d。 123456e10adc3949ba59abbe56e057f20f883e //123456后面的就是密文了 解释:为何在输入123456后不回车呢? 是因为openssl默认会把回车符当做要加密的字符串中的一个字符,所以得到的结果不同。如果你输入123456后回车,在按2次ctrl+d。得到的结果是: OpenSSL>md5 123456 f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的 b.或者直接用管道命令 # echo -n 123456 | openssl md5 //必须要有-n参数,否则就不是这个结果了。 e10adc3949ba59abbe56e057f20f883e 解释:为何要加-n这个参数? -n就表示不输入回车符,这样才能得到正确的结果。如果你不加-n,那么结果和前面说的一样为: f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的 2.用openssl加密文件。 #openssl md 5 -in 1.txt ##################################################3 Openssl其他相关加密的命令参数:引自:实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密 收藏 一. 利用openssl命令进行BASE64编码解码(base64 encode/decode) 1. BASE64编码命令 对字符串‘abc’进行base64编码: # echo abc | openssl base64 YWJjCg== (编码结果) 如果对一个文件进行base64编码(文件名t.txt): # openssl base64 -in t.txt 2. BASE64解码命令 求base64后的字符串‘YWJjCg==’的原文: # echo YWJjCg== | openssl base64 -d abc (解码结果) 如果对一个文件进行base64解码(文件名t.base64): # openssl base64 -d -in t.base64 二. 利用openssl命令进行md5/sha1摘要(digest) 1. 对字符串‘abc’进行md5摘要计算:echo abc | openssl md5 若对某文件进行md5摘要计算:openssl md5 -in t.txt 2. 对字符串‘abc’进行sha1摘要计算:echo abc | openssl sha1 若对某文件进行sha1摘要计算:openssl sha1 -in t.txt 三. 利用openssl命令进行AES/DES3加密解密(AES/DES3 encrypt/decrypt) 对字符串‘abc’进行aes加密,使用密钥123,输出结果以base64编码格式给出: # echo abc | openssl aes-128-cbc -k 123 -base64 U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= (结果) 对以上结果进行解密处理: # echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64 abc (结果) 若要从文件里取原文(密文)进行加密(解密),只要指定 -in 参数指向文件名就可以了。 进行des3加解密,只要把命令中的aes-128-cbc换成des3就可以了。 注:只要利用openssl help就可以看到更多的安全算法了。 ############################################### 二、 利用php的md5函数加密字符串 #touch a.php //创建a.php文件 #vi a.php //用vi 编辑a.php文件 将<?php echo md5(123456)?>输入进去后保存 #php a.php //运行a.php文件 显示:e10adc3949ba59abbe56e057f20f883e 三、 利用md5sum命令 A.在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。可以用下面的命令来获取md5sum命令帮助 man md5sum #md5sum –help 有个提示:“With no FILE, or when FILE is -, read standard input.”翻译过来就是“如果没有输入文件选项或者文件选项为 - ,则从标砖读取输入内容”,即可以直接从键盘读取字符串来加密。 利用md5sum加密字符串的方法 # md5sum //然后回车 123456 //输入123456.然后按两次ctrl+d. 显示: 123456e10adc3949ba59abbe56e057f20f883e 红色代表加密后的值 还可以用管道命令: #echo -n '123123' | md5sum 或者写成md5加密脚本,名字叫md5.sh, 将以下内容复制进脚本里: #!/bin/bash echo -n $1 | md5sum | awk '{print $1}' 保存后,给脚本执行权限。 #sh md5.sh 123456 显示:e10adc3949ba59abbe56e057f20f883e B.其实也可以将文本放入文本文件,然后用md5sum 加密改文本,也可以得到字符串加密的值。过程如下: #touch a.txt #echo -n 123456 >a.txt //将123456写进文本文件,不能丢了 –n参数,避免回车符干扰 #md5sum a.txt 显示:e10adc3949ba59abbe56e057f20f883e a.txt ctrl+d有两个含义: 一是向程序发送文件输入结束符EOF。 二是向程序发送exit退出指令。程序收到信号后具体动作是结束输入、然后等待,还是直接退出,那就要看该程序捕获信号后是如何 *** 作的了。 md5sum属于第一个含义。两次strl+d了,第一次读取EOF指令,再次捕获就会当成exit指令。而shell一类的程序,会直接把ctrl+d解析为退出指令。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6269321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存