哈希SHA- 256用于身份验证

2020-08-27 12:03发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好, 我需要获取时间戳,并使...

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

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


您好,

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

此致

Sandya

5条回答
小c菟菟
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

一周热门 更多>