- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 ASP.NET 应用程序和另一个基于 UNIX 的应用程序之间共享身份验证,其中散列密码存储在数据库中。我需要确保两个平台上的哈希算法匹配。
这就是我在 C# 中进行哈希处理的方式:
var sha1 = new SHA1CryptoServiceProvider();var passwordBytes = Encoding.UTF8.GetBytes(password);var passwordHash = sha1.ComputeHash(passwordBytes);var base64 = Convert.ToBase64String(passwordHash);return base64;
如果我使用密码 p@ssw0rd
,则哈希为 57B2AD99044D337197C0C39FD3823568FF81E48A
,该哈希的 base64 为 V7KtmQRNM3GXwMOf04I1aP+B5Io=
。 base64 哈希是存储在数据库中的内容。
如果我在 UNIX 上做同样的事情,我会得到一个完全不同的散列:
echo p@ssw0rd | iconv -f ISO-8859-1 -t UTF-8 | shasum -a 1 | base64 -e
产生ZTU3NmQwNmUzMTAwNmRkNzFhNTFjZTg5ZjViMGI4NWM2NTMyNzg3OCAgLQo=
如果您尝试使用 OpenSSL,请使用此 echo "p@ssw0rd"| openssl dgst -sha1 | openssl enc -base64
你会得到相同的散列值。
导致计算不同哈希值的两种 SHA1 算法有何不同?我也没有给这些加盐。
更新
秘诀如下:echo -n "p@ssw0rd"| openssl dgst -sha1 -二进制 | openssl enc -base64
echo -n
去掉换行符,-binary
必不可少。
希望这可以帮助某人。
谢谢,标记
最佳答案
echo -n
var passwordHashHex = String.Concat(Array.ConvertAll(passwordHash , x => x.ToString("X2"));
在 C# 中进行 base64 转换之前转换为十六进制关于c# - .NET 中的 SHA1CryptoServiceProvider 与 UNIX shasum 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3241414/
以下 bash 和 Perl 脚本神秘地给出了不同的结果。为什么? #!/bin/bash
我刚刚在一台新机器上安装了 RVM,当切换到包含 .rvmrc 的目录时文件(我已经接受)我得到: ERROR: Neither sha256sum nor shasum found in the P
我正在寻找一种方法来计算 tar 文件中包含的每个文件的 sha-256 值。问题是 tar 是 300GB,包含超过 200,000 个文件。 可以通过几种不同的方式在 bash 中执行此操作。 解
所以我一直在研究 SHA 哈希,但遇到了一些困难。出于某种原因,命令行中的 shasum 和我程序中 openssl 中的 SHA1() 会产生两个不同的结果。 代码: #include #incl
我一定缺少一些简单的东西。我不确定为什么 SHA 总和不匹配。总和是在 Linux 命令行上使用 nodejs 和 shasum 生成的。 user@host:~$ nodejs > var c =
例如我有这个提交 fa33745860726a363287962232787f23585a46e9 ,我想知道它属于哪个分支。 最佳答案 这应该这样做: $ git branch --contains
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
这个问题在这里已经有了答案: "shasum check failed" Error while installing Phonegap (4 个答案) 关闭 9 年前。 我正在尝试在 Ubuntu
试了很多次还是这个错误(shasum check failed) 4784 error Error: shasum check failed for C:\Users\FENGXI~1\AppData
$ echo -e 'blob 14\0Hello, World!' | shasum 产生:8ab686eafeb1f44702738c8b0f24f2567c36da6d 在 js/node 中运
我在我的 Mac OS 机器上安装 PhoneGap 时遇到问题: sudo npm install -g phonegap 错误信息: npm ERR! Error: shasum check fa
在 macOS (Mojave) 上,“shasum”命令是否有一个选项,它只返回没有文件名的哈希值? $ shasum -a 256 archive.tar.gz 35fe34e225a06d...
我在系统上安装了 NVM,并尝试通过以下命令安装较新版本的 Nodejs: nvm install v0.8.23 和 nvm install 0.8.23 但我收到以下错误: /usr/bin/wh
我正在尝试安装 Mongoose,但失败了。 npm install mongoose --save 这是错误: > kerberos@0.0.15 install D:\Hans\Playgroun
我正在尝试在 ASP.NET 应用程序和另一个基于 UNIX 的应用程序之间共享身份验证,其中散列密码存储在数据库中。我需要确保两个平台上的哈希算法匹配。 这就是我在 C# 中进行哈希处理的方式: v
我正在尝试编写下载 node.js source 的脚本和 corresponding SHASUMS256.txt ,校验和,grep OK,不返回任何结果,使用 grep 的 -q 标志成功退出代
尝试安装 firebase-tools 时收到此错误: PS D:\Projects\Uni\firebase-functions-hello-world> npm install -g fireba
我正在尝试在存储库中执行 npm install 但它显示此错误 几天前它工作正常,但今天我收到这个错误 npm ERR! Linux 5.4.0-70-generic npm ERR! argv "
我想在 ubuntu 17.10 上安装 elasticsearch5.6.4。所以我下载了elasticsearch.deb和elasticsearch.deb.sha1。正如 this guide
使用 sudo npm install create-react-app -g 时出错npm 错误! Linux 4.13.0-39-通用npm 错误! argv“/usr/bin/node”“/us
我是一名优秀的程序员,十分优秀!