Authentication SAP使用的密码哈希算法已知吗?
使用的版本:SAP B1 9.0 背景 我们希望为外部用户提供一个简单的身份验证web表单,并希望使用SAP B1用户管理来管理用户(当然还有密码) 由于我们无法找到密码散列背后的算法,我的老板还考虑使用与SAP用户不同的字段,如egAuthentication SAP使用的密码哈希算法已知吗?,authentication,cryptography,passwords,sapb1,Authentication,Cryptography,Passwords,Sapb1,使用的版本:SAP B1 9.0 背景 我们希望为外部用户提供一个简单的身份验证web表单,并希望使用SAP B1用户管理来管理用户(当然还有密码) 由于我们无法找到密码散列背后的算法,我的老板还考虑使用与SAP用户不同的字段,如egMobile Device ID,并在那里存储密码。让它以纯文本的形式存储在那里,并且可能被其他用户以各种形式看到,这对我来说是一个非常糟糕的主意,这就是为什么我在这里征求意见的原因 这里最好有人知道散列算法,盐是否单独存储,等等:-) 信息 web应用程序可以访问
Mobile Device ID
,并在那里存储密码。让它以纯文本的形式存储在那里,并且可能被其他用户以各种形式看到,这对我来说是一个非常糟糕的主意,这就是为什么我在这里征求意见的原因
这里最好有人知道散列算法,盐是否单独存储,等等:-)
信息
web应用程序可以访问存储SAP数据的SQL数据库,但不能与SAP进行“直接”通信
实际问题
- SAP使用哪种哈希算法
- 或者,如果不知道,是否有不同的解决方法
这是一个有趣而又困难的问题 我试过一些方法,但没有找到有效的解决办法。 但在这里,我的结果可能会有所帮助: 密码散列似乎是一个含盐的SHA1 密码salt存储在
OUSR.STData
中。还有一个字段OUSR.nospwdnum
,但我不知道它是如何一起工作的
DIPI SDK帮助文件对字段的描述如下:
- STData:用户密码Salt | nVarchar(40)
- NoSTPwdNum:密码加密,不含Salt(加密)| Int(6)
我试过一些方法,但都不管用。例如,密码前后的salt、密码散列和添加salt、大小写散列/salt等等。虽然我不知道该算法是否为公众所知,但有一个解决方法:您可以使用提供的用户名和密码,并尝试使用这些凭据打开与DI-API的连接。通过这种方式,您可以确保SBO施加的所有访问限制都得到了遵守(就像非活动用户一样)。我对B1了解不多,因此我不会添加答案,但我同意您的看法-以纯文本形式存储密码是一个糟糕的主意。+1 Thx用于共享!这至少是第一步…:-)他们可能会使用额外的胡椒和多轮散列(而不仅仅是一轮)。