lab-5-验证文件签名,检测文件完整性以及openssl部分使用
SHA256sum系列命令检测文件完整性
1 | sha256sum file即可计算文件哈希 |
下面收到文件哈希之后来检验
1 | echo "sha256哈希 文件名" | sha256sum --check |
如果不匹配则会显示mot match
如果哈希值存在于文件中,可以如下命令
1 | echo "$(cat 哈希值文件名) 待比较的文件" | sha256 --check |
验证文件私钥签名
我们使用gpg工具,安装之后在命令行
1 | gpg --verify filename.asc 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 | -----BEGIN 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 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment