首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单点登录(SSO)问题

单点登录(SSO)问题
EN

Stack Overflow用户
提问于 2015-08-04 07:56:00
回答 1查看 91关注 0票数 1

我们正在使用下面的java方法来支持HMAC->SHA1 1 signature.But,它显示的签名在sso console.Please中不匹配,试着在这个issue.let中提供帮助,我知道在java.What方法中是否还有其他方法被disqus使用以从消息和时间戳生成签名-

代码语言:javascript
复制
/**
 * To convert into base16
 * 
 * @param bytes
 * @return
 */
private static String toHexString(byte[] bytes) {
    Formatter formatter = new Formatter();
    for (byte b : bytes) {
        formatter.format("%02x", b);
    }
    return formatter.toString();
}

/**
 * 
 * @param data
 * @param key
 * @return
 * @throws SignatureException
 * @throws NoSuchAlgorithmException
 * @throws InvalidKeyException
 */
public static String calculateRFC2104HMAC(String data, String key)
        throws SignatureException, NoSuchAlgorithmException,
        InvalidKeyException {
    final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
    SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(),
            HMAC_SHA1_ALGORITHM);
    Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
    mac.init(signingKey);
    return toHexString(mac.doFinal(data.getBytes()));
    //return DatatypeConverter.printBase64Binary(mac.doFinal(data.getBytes()));
}

参考资料:Disqus sso java

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-18 05:32:31

Hmac sha1方法返回加密消息的十六进制字符串,我必须确保我们传递给该方法的密钥是正确的。它解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31803686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档