SHA256sum系列命令检测文件完整性

1
sha256sum file即可计算文件哈希

下面收到文件哈希之后来检验

1
echo "sha256哈希 文件名" | sha256sum --check

如果不匹配则会显示mot match

如果哈希值存在于文件中,可以如下命令

1
echo "$(cat 哈希值文件名) 待比较的文件" | sha256 --check

验证文件私钥签名

我们使用gpg工具,安装之后在命令行

1
2
gpg --verify filename.asc filename
gpg --verify filename.sig filename

两种格式均可,第一种文件之中就已经包含公钥,第二种我们要先导入公钥,用以下命令

1
gpg --import public.asc

然后再验证。

下面是一个破解hash的好用的网站

https://hashes.com/en/decrypt/hash

openssl使用

首先我们要注意,crt和pem后缀通常代表公钥,key和pem后缀通常代表私钥,这里也就是说pem后缀既可以是公钥也可以是私钥。

假设我们有公钥public,接下来

1
openssl rsautl -decrypt -inkey private.key -in message.txt -out decrypted.txt

公钥一般这样给出

1
2
3
4
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAL4GS9RXqGjELjiwpiVMUOyqbI0IMYSn
EbPVKEggFFihAgMBAAE=
-----END PUBLIC KEY-----

如果是一个der编码的公钥,我们用openssl解析转换为pem格式

1
openssl rsa -inform der -in publickey.der -pubin -out publickey.pem

但是上文是pem编码的公钥,所以用如下命令可以转换成der

1
openssl rsa -in publickey.pem -pubin -outform DER -out publickey.der

而对于pem格式的公钥,我们可以直接提取公钥信息

1
openssl rsa -pubin -in publickey.pem -text -noout

可以直接提取出n,e,然后进行破解。

还差最后一问!

1
openssl enc -d -aes-256-cbc -salt -in flag.bin.enc -out flag.bin -pass file:./key.bin