linux下加密解密命令,linux密码加密命令

linux-openssl命令行

title: linux-openssl

成都创新互联是网站建设专家,致力于互联网品牌建设与网络营销,专业领域包括网站建设、成都网站制作、电商网站制作开发、微信小程序开发、微信营销、系统平台开发,与其他网站设计及系统开发公司不同,我们的整合解决方案结合了恒基网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,且不断评估并优化我们的方案,为客户提供全方位的互联网品牌整合方案!

date: 2020-09-16 11:02:15

categories:

{% note info %}

OpenSSL是一个健壮的、商业级的、功能齐全的开源工具包,用于传输层安全(TLS)协议,以前称为安全套接字层(Secure Sockets Layer, SSL)协议。协议实现基于全强度通用密码库,也可以单独使用。

openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。

span style="color:red;"项目地址/span span style="color:red;"官方网址/span span style="color:red;"手册/span

{% endnote %}

{% tabs configtab, 1 %}

对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同。解密时,使用读密钥与加密密钥相同。

ECB\CBC\CFB\OFB

摘要算法是一种能产生特殊输出格式的算法,这种算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是摘要,被摘要的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此,基于这种原理的算法便能对数据完整性提供较为健全的保障。但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是不可逆的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证。

如今常用的“消息摘要”算法经历了多年验证发展而保留下来的算法已经不多,这其中包括MD2、MD4、MD5、SHA、SHA-1/256/383/512等。

常用的摘要算法主要有MD5和SHA1。MD5的输出结果为16字节,sha1的输出结果为20字节。

在公钥密码系统中,加密和解密使用的是不同的密钥,这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。这使得通信双方无需事先交换密钥就可进行保密通信。其中加密密钥和算法是对外公开的,人人都可以通过这个密钥加密文件然后发给收信者,这个加密密钥又称为公钥;而收信者收到加密文件后,它可以使用他的解密密钥解密,这个密钥是由他自己私人掌管的,并不需要分发,因此又成称为私钥,这就解决了密钥分发的问题。

主要的公钥算法有:RSA、DSA、DH和ECC。

Openssl中大量用到了回调函数。回调函数一般定义在数据结构中,是一个函数指针。通过回调函数,客户可以自行编写函数,让openssl函数来调用它,即用户调用openssl提供的函数,openssl函数再回调用户提供的函数。这样方便了用户对openssl函数操作的控制。在openssl实现函数中,它一般会实现一个默认的函数来进行处理,如果用户不设置回调函数,则采用它默认的函数。

{% endtabs %}

Linux下使用GPG(GnuPG)加密及解密文件

GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。

首先安装GPG

sudo apt install gnupg

gpg --gen-key

Real name: 输入用户名

Email address: 输入邮箱

Change (N)ame, (E)mail, or (O)kay/(Q)uit? O

最后查看

gpg --list-keys

如何在linux使用md5对其进行加密?

这里以字符串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解析为退出指令。

如何在Linux系统上加密

合力天下LINUX防泄密系统概述

Linux具有天生秉承的优势,越来越多的企业转向了Linux的开发和应用。使用Linux操作系统的单位多数都拥有自主知识产权,如果有丝毫的泄露,都会造成巨大的损失。 基于多年的数据防泄漏防护经验,北京合力天下数码信息技术有限公司自主研发了一套运行在Linux平台环境下,防止Linux系统中自主知识产权泄密的产品。该系统在不改变用户使用习惯、计算机文件格式和编译程序的情况下,对指定类型的代码文件进行实时、透明的加解密。所有通过非法途径获得的数据,都将以乱码文件形式表现。

合力天下LINUX防泄密系统是一款功能强大且易于使用的LINUX文档加密软件产品,该系统采用“驱动层AES智能透明加密技术”对指定类型的文件进行实时、强制、透明的加解密。在正常使用时,计算机内存中的文件是以受保护的明文形式存放,但硬盘上保存的数据却处于加密状态,如果没有合法的使用身份、访问权限和正确的安全通道,所有加密文件都将以密文状态保存。

合力天下LINUX防泄密系统稳定可靠,并且具备良好的可扩展性,能同时满足企业其它应用系统文档加密需求,有效防止数据丢失或泄露,有助于更深入、更全面地实施数据保护,从而确保企业机密数据的高度安全。

合力天下LINUX防泄密系统产品架构

合力天下LINUX防泄密系统采用控制台/服务器/代理(B/S/C)体系:服务器(Server)、客户端代理(Agent)和控制台(Management Console)三部分组成。

M/S/A三部分相互协调工作:管理员通过控制台的WEB浏览器制订灵活的安全策略;安全策略被保存在服务器上;终端计算机上安装的代理主动连接服务器;接收到网络连接后,服务器把制订好的策略下发到该终端计算机;终端计算机代理的安全引擎执行安全策略,进行安全控制。

合力天下LINUX防泄密系统部署模式

合力天下LINUX防泄密系统功能特点

一 驱动层透明加密

针对研发单位,可对JAVA、C、C++ 等各种源代码文件进行透明加密保护;

针对手机、电子书等版权单位,可针对任何需要保护其版权的文档类型进行透明加密保护;

针对办公环境,可对任何文件类型加密。

二 编译加密源代码

针对研发单位,加密的源代码文档无需解密为明文,可直接通过编译进程进行编译。

编译后的Image文件是明文,便于产品的测试与分发。

三 网络通信安全隧道

加密文档(如源代码)需要通过文档版本管理软件(如CVS\SVN\GIT)通过网络或文件系统进行集中备份与共享。加密文件系统提供网络安全隧道功能,保护网络通信中的加密文件。

如加密文件需要保存到服务器上,既可以密文存储到服务器上也可以明文存储到服务器上。

如明文存储到服务器上,加密系统的网络安全隧道可与合力天下LINUX防泄密系统服务器数据保护网关联动,实现加密文档在上传到服务器网关自动解密,下载文件时网关自动加密。如此既保障了文档的可靠性、可用性,又保障文档的安全性。

四 进程合法性验证

对进程进行签名认证,验证通过的进程,才是合法进程,才能对加密文件行读写操作。

任何伪造进程的方式都无法读写加密文档。如更改进程名称、SVN多种协议读写加密文件等都无法解密文件。

五 自身安全强保护

系统具有自我保护能力,在自身受到破坏不完整时整个系统依然能够保障数据的安全性。

粘贴/拷贝控制

系统具有防粘贴拷贝能力,不可信进程可以拷贝任何数据到可信进程;但可信进程不允许拷贝数据到任何其它进程,有效防止数据的泄露。

六 文件批量加密

可对明文文件批量加密,针对开源的文件很方便的合并到工程里面。

批量加密流程具有保护机制,防止已经加密的文件再次加密,造成文件的损坏。

七 可离线工作

离线即客户端网络连接不上加密服务器所处的状态,如外出办公等。

加密系统支持离线办公,离线的安全策略为最近一次在线时的文件加密策略。

八 与Windows加密系统兼容

Linux加密系统与Windows加密系统相互兼容:Windows加密的文件在Linux下能够操作,在Linux加密的文件在Windows下能够操作。

合力天下linux防泄密系统加密规则

1.不可信进程规则

不可信进程创建、编辑的文件都是明文文件。

不可信进程读取的加密文件是乱码,不可以使用。

2.可信进程规则

可信进程创建符合加密规则的文件是加密的文件。

可信进程可以透明读写编辑加密文件。

原不加密但符合加密规则文件,一但可信进程进行了编辑,则原文件成为加密文件。

可信进程在未创建、读写加密文件前,创建不符合加密规则的文件是明文的。

可信进程在未创建、读写加密文件前,可以任意编辑明文文件,该文件不被加密。

可信进程一旦创建、编辑了加密文件,则后续创建、编辑的所有文件都是加密的。

3.进程间拷贝粘贴规则

可以自由的从不可信进程中粘贴拷贝文字到可信进程。

可以自由的从不可信进程中粘贴拷贝文字到不可信进程。

可信进程的文字拷贝受到安全保护,禁止随意拷贝文字。

4.编译器进程规则

编译器创建的二进制文件是明文的,可以随意烧到嵌入式设备中。

5.离线加密规则

支持离线文档加密。

离线规则为最近一次上线的文档加密规则。

6.文件批量加密

支持文件批量代码加密转化。

已经加密的文件不会被二次加密。

合力天下LINUX防泄密系统功能表

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

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 中解密字符串

现在就是这些内容了。

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

openssl是可以加解密,但是你的要求是创建用户并输入密码,据我所知,linux的passwd命令好象只能用键盘交互,没法用脚本预设的。有个可用的法是:用useradd命令创建完用户后,再用脚本修改/etc/shadow(这个文件是真正存放用户密码的地方)里的密码段,这个密码段是用hash算法加密的,好象是sha256还是sha512之类的吧,例如'000000',加密后是$6$7z4nJy/C69Wj$A65GjO61mBtErCbGNxIt1IUumPs/YUmeu1Zb7jElxNU/5TNmIDNx/YY0cA5CBBlgbjKyQlNpyofDL2k0UtKft1/etc/shadow的权限只有root用户可以修改,因此这个脚本要由root来执行。


分享标题:linux下加密解密命令,linux密码加密命令
URL标题:http://ybzwz.com/article/dsieech.html