【发布时间】:2019-09-11 10:41:14
【问题描述】:
我尝试使用 SOAP 集成到 Web 服务,但我陷入了授权部分,更具体地说是在创建 sha1 加密密码时。 此特定授权的文档可在 https://www.beautyfort.com/api/docs/AuthHeader-t1
找到我一直在网上搜索,试图找到创建密码的不同方法,但似乎没有一种方法可以生成与文档页面中的示例相同的密码。
string testDateString = "2015-07-08T11:31:53+01:00";
string testNonce = "186269";
string testSecret = "Ok4IWYLBHbKn8juM1gFPvQxadieZmS2";
SHA1CryptoServiceProvider sha1Hasher = new SHA1CryptoServiceProvider();
byte[] hashedDataBytes = sha1Hasher.ComputeHash(Encoding.UTF8.GetBytes(testNonce + testDateString + testSecret));
string Sha1Password = Convert.ToBase64String(hashedDataBytes);
输入变量来自文档页面。根据文档,密码应该得到值“ZDg3MTZiZTgwYTMwYWY4Nzc4OGFjMmZhYjA5YzM3MTdlYmQ1M2ZkMw==” 但我使用的代码正在生成“2HFr6Aowr4d4isL6sJw3F+vVP9M=".
有人知道我做错了什么吗?
【问题讨论】:
-
他们也使用 UTF-8 吗?
-
嗯。不知道,但如果我改为 Encoding.ASCII.GetBytes,我仍然会得到相同的(错误的)密码值。
-
已确认。我只是试图通过蛮力找到正确的算法,但没有一个 SHA CryptoProviders 提供正确的长度(当然也没有值)。