我安装了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)