Shell编程--安全加密(md5sum)

1.概念

  • 网络传输、设备之间转存、复制大文件时,可能会出现传输前后数据不一致的情况
  • 这种情况在网络这种相对更不稳定的环境中容易出现
  • 因此,校验文件的完整性是必须的
  • md5sum命令用于生成和校验文件的md5值
  • 会逐位对文件的内容进行校验,与文件名无关
  • 也就是文件内容相同,其md5值相同
  • md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值
  • md5校验,由很小的概率不同的文件生成的md5可能相同
  • 比md5更安全的校验算法还有SHA*系列的
在网络传输时,我们校验源文件获得其md5sum
传输完成后,检验其目标文件,并对比
如果源文件和目标文件md5一致的花,则表示文件传输无异常
否则说明文件在传输过程中未正确传输

2.应用

1.文本加密处理
Shell编程--安全加密(md5sum)_第1张图片
2.多文本处理
Shell编程--安全加密(md5sum)_第2张图片
3.重要操作

-b 以二进制模式读如文件内容
-t 以文本模式读如文件内容
-c 根据已生成的md5值,对现存文件进行校验
- -status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断
  • -b二进制形式读
    Shell编程--安全加密(md5sum)_第3张图片

  • 将md5重定向到指定文件
    Shell编程--安全加密(md5sum)_第4张图片

  • 将多个文件的md5重定向或者追加到指定文件
    Shell编程--安全加密(md5sum)_第5张图片
    Shell编程--安全加密(md5sum)_第6张图片

  • -c根据已经生成的md5值,对现存文件校验(文件内容)

  • 生成当前文件的md5,并和之前已经生成的md5进行校验,如果一致,则返回OK,否则返回错误信息
    Shell编程--安全加密(md5sum)_第7张图片

  • – status不生成提示信息,通过命令的返回值来判断
    在这里插入图片描述

4.linux产生随机数的方法

  • 通过系统环境变量($RANDOM)实现
RANDOM的随机数范围为0~32767,因此加密性不是很好
可以通过在输出的随机数后增加加密字符串(就是和密码生成有关的一个字符串)的方法解决,最后再一起执行
md5sum操作并截取结果的后n位
这样,就无法根据随机数范围0~32767来猜出具体结果了

Shell编程--安全加密(md5sum)_第8张图片

  • 通过openssl产生随机数
令数字与大小写相结合,并带上特殊字符,可以达到很长的位数,很安全

在这里插入图片描述

  • 通过时间(date)获取随机数
    在这里插入图片描述

你可能感兴趣的:(Shell)