自定义PowerBI数据连接器Crypto.CreateHash不接受SHA1

时间:2018-01-16 14:14:03

标签: powerquery m powerbi-datasource

我正在尝试为PowerBI创建自定义数据连接器。我需要为身份验证过程创建一个SHA1哈希。这是我目前使用的代码

let
        nonce = Text.NewGuid(), 
        timestamp = DateTimeZone.ToText(DateTimeZone.UtcNow()),
        digestBin = Crypto.CreateHash(CryptoAlgorithm.SHA1, Text.ToBinary(nonce&timestamp&Extension.CurrentCredential()[Password])),
        digest = Binary.ToText(digestBin, BinaryEncoding.Base64),
        val = "UsernameToken Username=""" & Extension.CurrentCredential()[Username] & """, PasswordDigest=""" & digest & """, Nonce=""" & nonce & """, Created=""" & timestamp & """"
    in
        val;

我在查询输出中收到此错误,“无效的加密算法”。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

不支持将CryptoAlgorithm.SHA1作为哈希值,因为SHA-1哈希函数不安全。您可以创建一个使用SHA-1和Crypto.CreateHmac的HMAC,这是某些OAuth 1源所需要的。但是,你确实需要一把钥匙。