不确定为什么会失败..
./testme.sh
Before Loop
SSL1: /root/a.txt SHA256(/root/a.txt)= 92b165232fbd011da355eca0b033db22b934ba9af0145a437a832d27310b89f9
SSL2: /root/b.txt SHA256(/root/b.txt)= f0f9c277cf17429957daf6594714cc5470ac5c474ba5ac50319185477a174799
different
cp a.txt b.txt
./testme.sh
Before Loop
SSL1: /root/a.txt SHA256(/root/a.txt)= 92b165232fbd011da355eca0b033db22b934ba9af0145a437a832d27310b89f9
SSL2: /root/b.txt SHA256(/root/b.txt)= 92b165232fbd011da355eca0b033db22b934ba9af0145a437a832d27310b89f9
different
校验和,但相同,但报告不同:|
#!/bin/bash
#
# OPENSSL=/usr/bin/openssl
OPENSSL=/usr/local/openssl/bin/openssl
HOME=/root
ENCRYPT=sha256
SSL1=$($OPENSSL $ENCRYPT $HOME/a.txt)
SSL2=$($OPENSSL $ENCRYPT $HOME/b.txt)
## DEBUG
echo "SSL1: $HOME/a.txt $SSL1"
echo "SSL2: $HOME/b.txt $SSL2"
if [ "$SSL1" = "$SSL2" ]
then
echo "same"
else
echo "different"
fi
答案 0 :(得分:2)
我今天正在努力解决这个问题。这是在OSX上测试的单线程
diff <(openssl sha1 index.css | awk {'print $2'}) <(openssl sha1 original_source/index.css | awk {'print $2'})
成功时没有输出;输出两个哈希失败。
答案 1 :(得分:0)
仔细观察。结果包括文件名。
答案 2 :(得分:0)
$SSL1
不仅包含文件的哈希值;它还包含字符串SHA256(/root/a.txt)=
,其中包含文件名。同样适用于$SSL2
。所以很自然,它们并不相同,因为它们包含不同的文件名。
要获取 哈希值,您可以采取一些方法。我认为最简单的只是将其传递给grep
:
SSL1=$($OPENSSL $ENCRYPT $HOME/a.txt | grep -o '[0-9a-f]*$')
SSL2=$($OPENSSL $ENCRYPT $HOME/b.txt | grep -o '[0-9a-f]*$')