终端上的 Sha256 校验和显示奇怪的字符

终端上的 Sha256 校验和显示奇怪的字符

我安装了hashalot第一个来使用sha256。
然后当我使用命令+文件名时发生了一些奇怪的事情:

mlockall: Cannot allocate memory
Warning: couldn't lock memory, are you root?
Enter passphrase:

据我所记得,我以前从未为此输入过密码。如果我sudo在运行命令之前输入密码或使用密码,结果会显示奇怪的字符:

��z�9��E-�c���F�K��"�x~�(8�J��

我使用的是基于 Ubuntu(Elementary OS Freya)的操作系统。

答案1

您是否阅读过所安装软件包的描述?

该程序将从标准输入读取密码并将二进制(不可打印)哈希打印到标准输出。

您尝试将输出打印到控制台;您看到的是预期的行为。

答案2

ubuntu 16.04 默认每个用户的最大共享内存为 64k。我为所有用户将其增加到 1gb,错误消失。

通过在 /etc/security/limits.conf 文件末尾添加一行可以解决此问题。无需重新启动系统,但您需要注销。

$ echo test  | sha256 -s test | base64
mlockall: Cannot allocate memory
Warning: couldn't lock memory, are you root?
NyaDNd1pMQRb3N+SYj/4GaZCRLU9DnRtQ4eXNJ1NpXg=

$ ulimit -l
64
$ sudo bash
# echo "*   -     memlock   1048576" >> /etc/security/limits.conf

立即退出。

$ ulimit -l
1048576

$ echo test  | sha256 -s test | base64
NyaDNd1pMQRb3N+SYj/4GaZCRLU9DnRtQ4eXNJ1NpXg=

不要再哭了!!

我猜这个警告是关于你的秘密从内存中分页出来的特殊情况,并且有人后来在 tmp 空间中找到它。

答案3

我认为您正在寻找sha256 -x。从手册页:“如果给出了 -x 选项,则哈希将打印为十六进制数字字符串。”(https://manpages.debian.org/jessie/hashalot/sha256.1.en.html

相关内容