加密技术主要是防止数据遭受未经授权的访问,加密算法很多,我们着重讲解那些标准的加密算法,Linux环境下很多工具可以执行加密和解密

1.crypt

简单的加密工具

从std中接收一个文件或者口令,作为输入

然后将加密后的输出到output

crypt <file> outputfile

Enter password

会要求输入一个口令,我们可以利用命令行来提供口令

crypt PASSWORD <input_file> file

解密则可以

crypt PASSWORD -d <encrypted_file> output_file

2.gpg

GNU privact guard GNU 隐私保护

加密和解密的方式很简单

gpg -c filename

会采用交互的方式读取口令,并生成filename.gpg

解密gpg文件

gpg filename.gpg

然后也会交互的方式读取口令

3.Base64

直接将ASCII字符转换为64位基数的形式

我们采用ASCII字符串描述二进制数据,可以分别进行编码和解码

加密方式

base64 filename > outputfile

或者利用输入

cat file | base64 > outputfile

进行解码

base64 -d file > outputfile

cat base64_file | base64 -d > outputfile

md5sum 和 sha1sum

md5sum和sha1sum都是单向散列算法,无法获取到原始数据

通常用于验证数据完整性或者为特定数据生成唯一的秘钥,

md5sum file

sha1sum file

这就是存储密码的最好方式,我们不需要知道真正的密码,我只需要知道散列值,因为密码以一种明文的方式存储比较冒险

shadowlike散列 又名salted散列

Linux中,用户密码是以一种散列值的形式存储在 /etc/shadow 该文件中一行典型的内容类似是

图片

这就对应着密码的散列值

如果需要对一些重要的文件进行加密,需要使用shell脚本手动添加与用户,我们必须生成shadow密码字符串

其实就是利用一个额外的字符串,计算出一串混淆的字符串,使得加密不容易被破解,被用作秘钥生成函数的输入之一,生成密码的salted散列值

我们使用openssl生成shadow密码

openssl passwd -1 -salt SALT_STRING

PASSWORD

将SALT_STRING替换为随机字符串,同时将PASSWORD替换为自己想用的密码

发表评论

邮箱地址不会被公开。 必填项已用*标注