哈希SHA- 256用于身份验证

2020-08-27 12:03发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我需要获取时间戳,并使用SHA-256哈希用户名$ SearTb,然后将哈希用户名与时间戳(用":"分隔)连接起来,并将所有结果哈希到SHA-256,然后我们需要将其作为基本身份验证进行传递 在标题中。

此致

Sandya

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我需要获取时间戳,并使用SHA-256哈希用户名$ SearTb,然后将哈希用户名与时间戳(用":"分隔)连接起来,并将所有结果哈希到SHA-256,然后我们需要将其作为基本身份验证进行传递 在标题中。

此致

Sandya

付费偷看设置
发送
5条回答
小c菟菟
1楼 · 2020-08-27 12:22.采纳回答

由于CPI当前使用Groovy版本2.4.12,因此我们不能使用。sha256()函数,可从Groovy 2.5中获得。 因此,我们必须使用一些"经典"函数。

导入java.security.MessageDigest
 导入java.nio.charset.StandardCharsets

 def用户名=" \ $ SearTb"
 def timestampNow = new Date()。getTime()


//转换为SHA256
 MessageDigest摘要= MessageDigest.getInstance(" SHA-256")
 字节[]编码的哈希=摘要。摘要(username.getBytes(StandardCharsets.UTF_8))
 StringBuffer hexString =新的StringBuffer();
 for(int i = 0; i  

您可以在此处查看正在运行的演示: https://bit.ly/2OpxEAd

要将其设置为基本身份验证标头,只需调用消息函数:

 message.setHeader(" Authorization"," Basic $ {authTokenFinal}")

最后一点:您确定应该再次通过SHA256对结合了时间戳的编码用户名进行编码? 基本身份验证通常使用Base64来对身份验证字符串("用户名:密码")进行编码。

此致,
Raffael

黑丝骑士
2楼-- · 2020-08-27 12:29

嗨,

您要接收哪个输出? 如果要查看计算出的身份验证字符串,则可能应该调用message.setBody而不是message.setHeader。 如果您要使用计算出的身份验证标头表示要调用的服务的输出,那么我无能为力,因为我不知道您的集成案例或您构建的整个Iflow ...

SKY徐
3楼-- · 2020-08-27 12:09

嗨,拉斐尔·赫尔曼

Am使用上面的代码作为哈希的用户名,但是我们需要传递一些用于密码的虚拟值以进行授权,所以您能帮助我我该如何添加它以及我现在需要在哪里添加它 出现401错误。

此致,
Sandya

hongfeng1314
4楼-- · 2020-08-27 12:26

该问题将被关闭,因为原始问题已得到正确回答。 如有任何后续问题,请在这里提出一个新问题: https://answers.sap.com/ questions/ask.html

谢谢。

jovirus
5楼-- · 2020-08-27 12:31

你好桑迪亚,

这听起来很奇怪。 您是否尝试在工件设置中启用"跟踪"模式? 在"跟踪"模式下运行消息流后,切换到"跟踪"视图。 在那里您应该能够看到所有标题。

致谢

一周热门 更多>