linux命令之md5sum
在Linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。md5sum是一种计算机程序,用于计算与校验RFC 1321所描述的128位MD5哈希值,此处MD5散列值(或校验和)作一个文件的数字指纹使用。
两个不同的文件几乎不可能有相同的MD5哈希值,除非其创建便是刻意为之。一般来说,任何对一个文件的非恶意变更都会导致其MD5哈希值改变,因此md5sum一般用于检查文件完整性,尤其常用于检测在文件传输、磁盘错误或其他无恶意涉入的情况下文件的正确性。
- 参数
-b 以二进制模式读入文件内容
-t 以文本模式读入文件内容
-c 根据已生成的md5值对文件进行校验
- 用法举例
[root@server1 security]# md5sum data > data.md5
[root@server1 security]# md5sum -c data.md5
data: OK
[root@server1 security]# md5sum data* > hash.md5
[root@server1 security]# ls
data data2 data3 data.md5 hash.md5
[root@server1 security]# md5sum -c hash.md5
data: OK
data2: OK
data3: OK
data.md5: OK
随机数
- $RANDOM 生成,通过md5加密后截取
- 通过openssl产生随机数
- 通过date产生
[root@server1 security]# openssl rand -base64 8
kS8xki5KB78=
[root@server1 security]# echo "gaoqi$RANDOM" | md5sum | cut -c 8-15
337c8cc8
[root@server1 func]# cat 3.sh
#!/bin/bash
dir=westos
[ -d $dir ]||mkdir $dir
for i in `seq 10`
do
random=$(openssl rand -base64 40 | sed 's/[^a-z]//g'|cut -c 2-11)
touch $dir/${random}_westos.html
done
[root@server1 func]# cat user.sh
#!/bin/bash
. /etc/init.d/functions
user=westos
for i in `seq -w 10`
do
passwd=$(openssl rand -base64 40|cut -c 1-8)
useradd $user$i &> /dev/null &&{
echo $pass | passwd --stdin $user$i &> /dev/null
echo -e "user: $user$i\tpasswd: $passwd" >> user.log
}
if [ $? -eq 0 ];then
action "$user$i is ok" /bin/true
else
action "$user$i is fail" /bin/false
fi
done
cat user.log && >user.log
文件安全性的保证