标签: cryptography

如何在 cli 上获得 base64 编码的 shaX?

sha1sum输出实际 sha 的十六进制编码格式。我想看到一个 base64 编码的变体。可能有一些命令输出我可以通过管道echo -n "message" | <some command> | base64传输的二进制版本,就像这样:或者如果它直接输出它也很好。

cryptography base64 hashsum

40
推荐指数
2
解决办法
4万
查看次数

如何判断 RPM 包是用哪个 GPG 密钥签名的?

可以使用该rpm -K命令验证 RPM 的加密签名。如果签名在 RPM 的数据库中并且有效,这将返回一个包含gpg(或pgp) 并以 结尾的字符串OK

如果包未签名但校验和有效,您仍然会得到OK,但不会得到gpg

如果包已签名但密钥从 RPM 数据库中丢失,您会得到(GPG)(大写字母)和NOT OKAY,后跟(MISSING KEYS: GPG#deadbeef).

如果我想弄清楚我应该找到什么密钥来安装我的包安装工作,这很方便。

但是,如果我想验证RPM 密钥环中的哪些密钥用于对给定的包进行签名,该怎么办?

rpm packaging cryptography gpg

31
推荐指数
4
解决办法
4万
查看次数

如何强制 /dev/random 阻止?

对于密码学课程,我试图耗尽 Linux 中的熵池(例如,使/proc/sys/kernel/random/entropy_avail转到 0 并阻止从 读取命令/dev/random),但我无法实现它。我应该从/dev/random块中读取数据。如果我执行这两个命令:

watch -n 0.5 cat /proc/sys/kernel/random/entropy_avail
Run Code Online (Sandbox Code Playgroud)

观察熵,然后:

od -d /dev/random
Run Code Online (Sandbox Code Playgroud)

为了转储随机池,watch命令中的值徘徊在 3700 和 3900 之间,并且在我运行此命令时只有一点点增益和损失。我让这两个命令运行大约三分钟, 的大小没有明显的变化entropy_avail。那段时间我并没有在电脑上做太多事情。通过谷歌搜索,我发现也许硬件随机数生成器可能非常好,以至于熵不会下降,但如果我这样做:

cat /sys/devices/virtual/misc/hw_random/rng_available
Run Code Online (Sandbox Code Playgroud)

我什么也没看到,只看到一个空行。所以我有几个问题:

  1. 是什么给我的熵补充得这么好,我怎样才能找到随机性的具体来源?
  2. 有什么方法可以暂时禁用随机源,以便我可以强制发生这种阻塞?

cryptography random linux-kernel

21
推荐指数
3
解决办法
4299
查看次数

为什么 Fedora GPG 密钥没有签名?

Fedora 使用 GPG 密钥对 RPM 包和 ISO 校验和文件进行签名。他们在网页上列出了正在使用的密钥(包括指纹)。网页通过 https 传送。

例如,校验和文件Fedora-16-i386-DVD.iso与密钥签名A82BA4B7检查谁签署了公钥会导致一个令人失望的列表:

键入位/keyID cr。时间过期时间密钥过期

酒吧 4096R/A82BA4B7 2011-07-25            

uid 软呢帽 (16) 
sig sig3 A82BA4B7 2011-07-25 __________ __________ [selfsig]

Fedora 社区中似乎没有人签署过这些重要的密钥!

为什么?;) (为什么 Fedora 不使用信任网络?)或者我错过了什么?

将此与Debian进行比较- 他们当前的自动 ftp 签名密钥473041FA 由 7 个开发人员签名

编辑:为什么这个东西很重要?

拥有如此重要的密钥由真实的人签名(目前它没有由任何人签名!)建立了一定程度的信心,即它是真实的密钥,而不是由攻击者在 5 分钟前刚刚上传到网络服务器上创建的。这种级别的信心或信任要求您可以在信任网络中追踪签名关系(对您已经信任的人)。当不同的人签署时,您能够这样做的可能性会增加(目前可能性为零)。

您可以将这种信任与浏览https://mybank.example.net并获得认证验证警告进行比较 - 然后您是否仍会输入您的交易详细信息,或者您是否会认为“等一下!”,停止并调查问题?

security fedora debian cryptography signature

15
推荐指数
1
解决办法
1178
查看次数

解密linux影子文件的程序

是否有任何程序或脚本可用于解密 Linux 影子文件?

linux password pam cryptography

10
推荐指数
1
解决办法
6万
查看次数

数字签名电子邮件的 Cli 验证

我是 Alice,我收到了 Bob 的签名电子邮件。

我使用 Web 电子邮件客户端(例如 GMail),我看到附件之一是smime.p7s.

我找到了“显示原始消息”选项并将内容保存到message.orig.

假设 Bob 签署了电子邮件,我如何从命令行验证它?

(让我们假设 Bob 使用由一些受人尊敬的机构签署的认证密钥 - 我不知道是哪个,但我想是)

(Alice 不想安装具有适当功能的电子邮件客户端,只是为了一封邮件)

cryptography openssl signature

10
推荐指数
1
解决办法
5056
查看次数

/etc/ssh/ 和 ~/.ssh 有什么区别?

我对 OpenSSH 很感兴趣,我知道该/etc/ssh目录是用于 ssh 守护进程的,而该~/.ssh目录是用于特定用户的。

两个目录都包含私钥和公钥:

目录目录

但是这些键之间有什么区别呢?我很困惑,因为我作为用户使用的那些在我的主目录中,在/etc/ssh?

security ssh openssh cryptography key-authentication

10
推荐指数
2
解决办法
9926
查看次数

验证使用 yescrypt 算法的散列加盐密码

为了验证密码哈希,我们可以使用openssl passwd如下所示的内容并在此处进行解释

openssl passwd $HASHING-ALGORITHM -salt j9T$F31F/jItUvvjOv6IBFNea/ $CLEAR-TEXT-PASSWORD

但是,这仅适用于以下算法:md5、crypt、apr1、aixmd5、SHA-256、SHA-512

如何使用 yescrypt 从 bash 或 python 或 nodeJS 计算 $CLEAR-TEXT-PASSWORD 的哈希密码?

linux bash password ubuntu cryptography

7
推荐指数
1
解决办法
4289
查看次数

RIPEMD-160 文件摘要

如何在 Linux 下使用 RIPEMD-160 哈希函数从命令行制作文件摘要?

command-line cryptography hashsum

6
推荐指数
1
解决办法
3845
查看次数

如何从终端使用 openSSL 执行 HmacSHA256?

我需要从命令行使用 OpenSSL 执行以下 Java 代码片段:

  private byte[] hmacSha256(byte[] key, byte[] payload) throws GeneralSecurityException {
    Mac mac = Mac.getInstance("HmacSHA256");
    mac.init(new SecretKeySpec(key, "HmacSHA256"));
    mac.update(payload);
    return mac.doFinal();
  }
Run Code Online (Sandbox Code Playgroud)

这些是适用于 Java 但不适用于 OpenSSL 的测试值:

KEY_BASE64="xtztqVgjD+5VHL4rVeKYm0USpDJTEy5Tjc9aK6I/oV0="
KEY_HEX="c6dceda958230fee551cbe2b55e2989b4512a43253132e538dcf5a2ba23fa15d"
PAYLOAD_BASE64="j9F8TrzCabcDoLdHUDaUuv6ea224xikwbPF1IW0OjkY="
DIGEST_HEX="c2ec711448a4f5bb851279eca0a628847254855966ad09de7e734b7df48e198a"
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个答案,但得到了不同的结果。它看起来像这样:

KEY_BASE64="xtztqVgjD+5VHL4rVeKYm0USpDJTEy5Tjc9aK6I/oV0="
KEY_HEX="c6dceda958230fee551cbe2b55e2989b4512a43253132e538dcf5a2ba23fa15d"
PAYLOAD_BASE64="j9F8TrzCabcDoLdHUDaUuv6ea224xikwbPF1IW0OjkY="
DIGEST_HEX="c2ec711448a4f5bb851279eca0a628847254855966ad09de7e734b7df48e198a"
Run Code Online (Sandbox Code Playgroud)

它确实为我提供了十六进制格式的输出,但该值与我使用相同的负载和键值运行该 Java 代码片段时得到的值不匹配。

我还可以使用另一个命令行工具,只要它在大多数 Linux 默认包管理器列表中广泛可用即可。

bash java cryptography openssl

6
推荐指数
1
解决办法
2万
查看次数