4

使用的版本:SAP B1 9.0

背景

我们希望为外部用户提供一个简单的身份验证 Web 表单,并希望使用 SAP B1 用户管理来管理用户(当然还有密码)。

由于我们无法找到密码散列背后的算法,我的老板还考虑使用与 SAP 用户不同的字段,例如Mobile Device ID并在那里存储密码。将它作为纯文本存储在那里,并且可能以各种形式被其他用户看到,但是对我来说似乎是一个非常糟糕的主意,这就是我在这里寻求想法的原因。

最好这里有人知道散列算法,盐是否单独存储等:-)

信息

Web 应用程序可以访问存储 SAP 数据的 SQL 数据库,但不能与 SAP 进行“直接”通信。

实际问题

  • SAP使用什么样的哈希算法
  • 或者是否有不同的解决方法,如果不知道的话
4

2 回答 2

4

这是一个有趣而困难的问题。

我已经尝试了一些东西,但我还没有找到一个可行的解决方案。但在这里我的结果,也许它有帮助:

密码哈希似乎是带盐的 SHA1。

密码盐存储在OUSR.STData. 还有一个字段OUSR.NoSTPwdNum,但我不知道它是如何一起工作的。

DIAPI-SDK-Helpfile对字段的描述如下:

  • STData:用户密码盐 | nVarchar(40)
  • NoSTPwdNum:无盐加密的密码(密码学)| 整数(6)

我尝试了一些方法,但都没有奏效。例如密码前后加盐,散列密码和加盐,散列/盐大小写等等。

于 2014-07-16T12:15:37.250 回答
0

虽然我不知道该算法是否为公众所知,但有一种解决方法:您可以使用提供的用户名和密码并尝试使用这些凭据打开与 DI-API 的连接。通过这种方式,您可以确保 SBO 施加的所有访问约束实际上都得到遵守(如非活动用户)。

于 2018-08-29T16:16:57.507 回答